我有一个集合.
我想从它预测只有前N个未被删除.
但是我想计算我遍历了多少元素(已删除和未删除),直到达到第N个未删除的元素.
我该怎么做?我想用副作用:
int i;
collectiom.Skip(Convert.ToInt32(startIndex))
.TakeWhile( x=>
{
++i != 0;
return (!x.IsDeleted)
})
.Take(N);
Run Code Online (Sandbox Code Playgroud)
但是编译器拒绝了.而现在我发现它无论如何都没有回答我的需要
TIA
这个怎么样:
var selected = collection.Select((x, i) => new {Item = x, Index = i})
.Skip(Convert.ToInt32(startIndex))
.Where(x => !x.Item.IsDeleted)
.Take(N);
Run Code Online (Sandbox Code Playgroud)
结果是一系列N匿名对象,其中x.Item是原始对象,并且x.Index是原始集合中的索引.如果你想从startIndex交换Select和Skip调用开始计算原始集合.
然后,您可以获得所需的数字:
var numberProcessed = selected.Last().Index + 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |