Обновить список с модификацией элемента с помощью linq - PullRequest
0 голосов
/ 17 декабря 2018

Предположим, у меня есть список.

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 голосов
/ 17 декабря 2018

Как указал ДжонБ в комментариях, если ABCClass действительно является class (а не struct), то item относится к объекту в списке, и любое изменение в нем будет виднов следующий раз, когда вы выполните список.

Однако, если ABCClass действительно является struct, то item является просто копией объекта в списке, и изменения в нем не будут отраженыв списке.

если в этом случае (что маловероятно), вам нужно будет сделать что-то такое:

List<int> lstABC; // it has some data
var idx = lstABC.FindIndex(a => a.index == 1);
if (idx != -1)
    lstABC[idx].Number = 5;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...