使用linq修改项目的更新列表

时间:2018-12-17 06:19:45

标签: c# linq lambda

假设我有一个列表

List<ABCClass> lstABC; // it has some data

现在需要修改列表中的一项

var item = lstABC.Where(a=>a.index == 1).FirstOrDefault();
if(item != null)
    item.Number = 5;

现在再次在lstABC中分配此项目的最有效方法是什么,因为我需要更新的lstABC而不创建新列表并分配给它。

1 个答案:

答案 0 :(得分:0)

正如JohnB在评论中指出的那样,如果[[2, 4, 3, [1, 2]], [1, 5, 6], [9], [7, 9, 0]] [2, 4, 3, [1, 2], 1, 5, 6, 9, 7, 9, 0] 确实是ABCClass(而不是class),那么struct就是列表中的对象,并且对它的任何更改将在您下次浏览列表时显示。

但是,如果item确实是ABCClass,那么struct只是列表中对象的副本,对其的更改将不会反映在列表中。 / p>

如果是这种情况(不太可能),则需要执行以下操作:

item