LINQ эквивалент foreach для IEnumerable <T> - PullRequest
670 голосов
/ 14 октября 2008

Я бы хотел сделать в LINQ следующее, но я не могу понять, как:

IEnumerable<Item> items = GetItems();
items.ForEach(i => i.DoStuff());

Что такое настоящий синтаксис?

Ответы [ 21 ]

1 голос
/ 03 июля 2012

Эта абстракция с "функциональным подходом" просачивается много времени. Ничто на уровне языка не предотвращает побочные эффекты. Пока вы можете заставить его вызывать лямбда / делегат для каждого элемента в контейнере - вы получите поведение «ForEach».

Вот, например, один из способов объединения srcDictionary в destDictionary (если ключ уже существует - перезаписывает)

это хак, и его не следует использовать ни в одном производственном коде.

var b = srcDictionary.Select(
                             x=>
                                {
                                  destDictionary[x.Key] = x.Value;
                                  return true;
                                }
                             ).Count();
...