/ / Щоб перетворити foreach на linq [дублікат] - c #, asp.net, linq, c # -4.0, foreach

Для перетворення foreach на linq [дублікат] - c #, asp.net, linq, c # -4.0, foreach

Як перетворити наступне 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.