我有一个列表<>
我需要修改列表的单行项目。
List.Where(x => x.Amount>0).OrderBy(x => x.Id).ToList()
.ForEach(x => x.Amount = x.Amount + (item1- item2));
以上代码可用于多行,但我想使用条件选择列表的第一行,并仅更新或修改第一行项目的值。
谢谢
答案 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;
}
侧面说明:条件有点怪异。每次执行查询时,返回的第一行可以不同。