在下面的方法中,我想返回所选卡片的索引数组:
public class Card
{
public bool Selected { get; set; }
// ... other members here ...
}
public void int[] GetSelectedCards(Cards[] cards)
{
// return cards.Where(c => c.Selected).ToArray();
// above line is not what I want, I need their indices
}
Run Code Online (Sandbox Code Playgroud)
有谁知道一个很好的一行代码LINQ为此?可能?
更新:
有趣的是,我发现了一些东西:
return cards.Where(c => c.Selected).Select(c => Array.IndexOf(cards, c));
Run Code Online (Sandbox Code Playgroud)
你怎么看?
您可以使用重载投影Select元素的索引来初始化匿名类型:
return cards
.Select((c, i) => new { Card = c, Index = i})
.Where(x => x.Card.Selected)
.Select(x => x.Index)
.ToArray();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |