我可以用索引
编写这样的代码吗?var someArray = new List<int>(){1,2,3,4,5};
var resultArray = someArray.Where((num, index) => index % 2 == 0);
像
var resultArray = from num in someArray...
答案 0 :(得分:3)
我想你是在问“我可以使用查询表达式语法来获取提供项目索引的Where
的重载,我可以使用流利的方式方法链语法“。
答案是否定的。
如the no-index-parameter overload of Where
的文档中所示:
在查询表达式语法中,
where
子句转换为Where<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>)
的调用。
答案 1 :(得分:2)
Where
扩展方法没有等效的,允许您使用LINQ语法来使用索引。
答案 2 :(得分:1)
唯一的方法似乎是解决这个问题:
var count = 0;
var resultArray = from num in someArray
let index = count++
where index % 2 == 0
select num;
使用其他语法可能更好。