使用 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 遍历列表并设置已创建的变量 [重复]的主要内容,如果未能解决你的问题,请参考以下文章