如何使用LINQ更新列表中的项目

时间:2018-07-13 08:59:49

标签: c# linq

我有一个列表<>

我需要修改列表的单行项目。

List.Where(x => x.Amount>0).OrderBy(x => x.Id).ToList()
.ForEach(x => x.Amount = x.Amount + (item1- item2));

以上代码可用于多行,但我想使用条件选择列表的第一行,并仅更新或修改第一行项目的值。

谢谢

2 个答案:

答案 0 :(得分:3)

你的意思是这样吗

List.Where(x => x.Amount>0).OrderBy(x => x.Id).FirstOrDefault()?.Amount += (item1- item2);

答案 1 :(得分:2)

因此,您可以仅使用FirstOrDefault扩展方法,如下所示:

var item = List.FirstOrDefault(x => x.Amount > 0);
if (item != null) 
{
    item.Amount += item1- item2;
}

侧面说明:条件有点怪异。每次执行查询时,返回的第一行可以不同。