Як перетворити наступне c# foreach
до linq
код?
var structure = "names structure";
var names = "name1, name2, name3";
foreach (var name in namesList)
{
BuildPage(name, structure, names);
}
Відповіді:
3 для відповіді № 1Ідеться проти зерна, ви можете використовувати .ForEach
петля, яка займає Action
параметр
namesList.ForEach(x => BuildPage(x, structure, names));
Але так, що Rene Vogt
сказав
3 для відповіді № 2
Не потрібно перетворювати це в LINQ.
Тут ви повинні почати дію / виклик методу для кожного name
в namesList
(як зазначає ваш код). Тому ви хочете створити побічні ефекти для всіх елементів у вашій колекції.
LINQ має функціональний підхід Тому його метою є прийняття значень одного набору і створення іншого встановленого проектування, фільтрація та / або агрегація, але не створити побічні ефекти на ці елементи.
Ваш код, як і його, є читабельним і ефективним, немає необхідності перетворити його в неправильну заявку LINQ.