加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何计算元素直到找到N个好元素?

发布时间:2020-12-16 01:49:30 所属栏目:百科 来源:网络整理
导读:我有一个集合. 我想从它预测只有前N个未被删除. 但是我想要计算多少元素(已删除和未删除) 我遍历了直到达到第N个未删除的元素. 我该怎么做? 我想用副作用: int i;collectiom.Skip(Convert.ToInt32(startIndex)) .TakeWhile( x= {++i != 0; return (!x.IsDe
我有一个集合.

我想从它预测只有前N个未被删除.

但是我想要计算多少元素(已删除和未删除)
我遍历了直到达到第N个未删除的元素.

我该怎么做?
我想用副作用:

int i;
collectiom.Skip(Convert.ToInt32(startIndex))
            .TakeWhile( x=> 
{
++i != 0; 
return (!x.IsDeleted)
})
            .Take(N);

但是编译器拒绝了.
而现在我发现它无论如何都没有回答我的需要

TIA

解决方法

这个怎么样:

var selected = collection.Select((x,i) => new {Item = x,Index = i})
                         .Skip(Convert.ToInt32(startIndex))  
                         .Where(x => !x.Item.IsDeleted)
                         .Take(N);

结果是N个匿名对象的序列,其中x.Item是原始对象,x.Index是原始集合中的索引.如果要从startIndex开始计算原始集合,只需交换Select和Skip调用.

然后,您可以获得所需的数字:

var numberProcessed = selected.Last().Index + 1;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读