使用 LINQ 遍历列表并设置已创建的变量 [重复]

Posted

技术标签:

【中文标题】使用 LINQ 遍历列表并设置已创建的变量 [重复]【英文标题】:Iterate with LINQ over a list and set founded varible [duplicate] 【发布时间】:2016-05-31 18:44:53 【问题描述】:

我有这段代码,想用 linq 语句做同样的事情。

foreach (var field in fieldExtension)
     
          if (field.Name.Equals(item.Name))
          
                field.Access = true;
          
     

很容易遍历列表:

fieldExtension.Where(field => field.Name.Equals(item.Name));

但是是否可以为我们在列表中找到的变量赋值?我想到了这样的事情:

fieldExtension.Where(field => field.Name.Equals(item.Name)).Select(field => field.Access = true);

有人知道用 linq 正确执行此操作的方法吗?因为我不想分开。这也可以。

var result = fieldExtension.Where(field => field.Name.Equals(item.Name)).ToList();
result.FirstOrDefault().Access = true;

【问题讨论】:

fieldExtension.Where(field => field.Name.Equals(item.Name)).ToList().ForEach(field => field.Access = true); 有趣的方法,但它似乎有点像黑客。 ;) 【参考方案1】:

你为什么坚持使用linq?一直使用 linq 并不是一个好习惯。

如何将 linq 与 foreach 混合使用。

foreach (var field in fieldExtension.Where(f => f.Name.Equals(item.Name)))

    field.Access = true;

【讨论】:

在我的公司中,由于可读性,他们更喜欢 linq,我想知道 linq 的限制在哪里。但我想我会选择这种组合。

以上是关于使用 LINQ 遍历列表并设置已创建的变量 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python循环遍历列表并创建动态变量

如何遍历复选框列表并找到已选中和未选中的内容?

如何在linq C#中使用group by并获取记录列表[重复]

如何使用 LINQ Contains() 查找枚举列表?

使用 LINQ 选择单个列表的所有唯一组合,不重复

使用 LINQ 选择单个列表的所有唯一组合,不重复