Вам все еще нужно использовать foreach
, потому что Linq касается только итерации и запросов и должен не использоваться для введения побочных эффектов или действий (это , почему Linq не делает иметь ForEach
или Do
метод расширения ).
Обратите внимание, что поскольку item.Category1
перезаписано внутри цикла, вам необходимо сначала с нетерпением оценить выражение Linq.
Попробуйте это (при условии, что ваш тип элемента списка назван ListItem
):
List<ListItem> allListItems = masterList
.SelectMany( li => li.Category1 )
.ToList();
foreach( ListItem item in listItems )
{
item.Category1 = item.Category2;
item.Category2 = null;
}