Страницы

Поиск по вопросам

понедельник, 25 марта 2019 г.

Почему при использовании where результат содержит ссылку на исходный массив?

Допустим у меня есть массив List> first_mas, на котором я провожу выборку
List result = new List(); result = first_mas.Where(d => d[0] == "1").First();
Если допустим я потом в result удалю несколько элементов, то и в исходном first_mas удалятся эти элементы. Как я понимаю это из-за того что result содержит ссылку на first_mas или дело в другом? Можно как то указать чтобы результат был самостоятельным массивом (без ссылки на исходный)? Или только вручную создавать промежуточный и копировать туда?


Ответ

Where лишь фильтрует исходных список. Логично, что результат ссылается на оригинал.
Можно как то указать чтобы результат был самостоятельным массивом (без ссылки на исходный)?
Например, так:
List result = first_mas.Where(d => d[0] == "1").First().ToList();
Или:
List result = new List(first_mas.Where(d => d[0] == "1").First());

Комментариев нет:

Отправить комментарий