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

c# – 另一个Linq翻译问题

发布时间:2020-12-16 01:34:01 所属栏目:百科 来源:网络整理
导读:好的,所以我正在迭代一个集合.对于满足某些条件的每个成员,我想在该成员上调用一个方法: 我现在就是这样做的: foreach(MyObject obj in myCollection){ if(obj.Property == theSearchValue) obj.DoIt();} 对于它的价值,我认为foreach是最可读,最清晰的方法
好的,所以我正在迭代一个集合.对于满足某些条件的每个成员,我想在该成员上调用一个方法:

我现在就是这样做的:


foreach(MyObject obj in myCollection)
{
  if(obj.Property == theSearchValue)
    obj.DoIt();
}

对于它的价值,我认为foreach是最可读,最清晰的方法(我们可以谈论花括号的细节),所以这对我来说更像是一个学术/学习问题.

问题:用Linq表达这一点的最佳方法是什么?是否有一种Linqy方法可以比我的foreach循环更清晰/可读/可维护?如果是这样,它是否会在不牺牲性能的情况下这样做?

(我看到的很多linq操作看起来很整洁,但是它们经常导致创建中间枚举,或者有时多次枚举一个集合 – 我的小foreach在1遍中解决了问题,没有创建临时集合. )

解决方法

foreach (MyObject obj in 
                    myCollection.Where(item => item.Property == theSearchValue))
    obj.DoIt();

(编辑:李大同)

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

    推荐文章
      热点阅读