如何使用linq更改对象的值
我有以下声明:如果isdefault对此集合是真的,我需要将每个对象的isDefault属性设置为false。
custHead.lstCustomziation.Where(x => x.IsDefaultSelected == true).Select(x=>{x.IsDefaultSelected=false}); lstCustomziation is a collection.
LINQ用于查询。 您应该使用foreach
循环进行更改:
foreach (var item in custHead.lstCustomziation.Where(x => x.IsDefaultSelected)) { item.IsDefaultSelected = false; }
也就是说,如果IsDefaultSelected
对于其他项目都是false
的,那么无条件地设置它可能更简单:
foreach (var item in custHead.lstCustomziation) { item.IsDefaultSelected = false; }
Linq用于查询 ,而不是更新 。 您可以获取要更改的项目列表, 然后使用正常循环进行更新:
var list = custHead.lstCustomziation.Where(x => x.IsDefaultSelected == true) foreach(var item in list) item.IsDefaultSelected=false;
正如LINQ的Q所说,LINQ专为查询而非更新而设计。
只需枚举LINQ结果并应用您的更新即可。
Linq最初可能是为查询而创建的,但它已经发展并被用作函数式编程方法,等同于“map”,“reduce”和其他语言中使用的“filter”。
在你的例子中,我建议:
上述就是C#学习教程:如何使用linq更改对象的值分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
var list = custHead.lstCustomziation.Where(x => x.IsDefaultSelected == true) .Select(x=> TransformItem(x)); private XType TransformItem(XType item){ item.IsDefaultSelected=false; return item; }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1001921.html