Использование ForEach в LINQ

  • Михаил
  • 8 мин. на прочтение
  • 136
  • 30 Apr 2024
  • 30 May 2024

LINQ (Language Integrated Query) в C# предоставляет множество методов расширения, которые помогают работать с коллекциями данных. Одним из таких методов является ForEach(), который позволяет выполнять определенное действие для каждого элемента коллекции.

Вот пример использования ForEach() в C#:

List numbers = new List { 1, 2, 3, 4, 5 };
numbers.ForEach(number => Console.WriteLine(number));

В этом примере мы создаем список целых чисел numbers и используем метод ForEach() для вывода каждого элемента на консоль.

Другие примеры использования ForEach():

1. Изменение элементов коллекции:

List names = new List { "John", "Jane", "Bob" };
names.ForEach(name => name = name.ToUpper());

В этом примере мы преобразуем все имена в верхний регистр.

2. Вызов методов для каждого элемента:

class Person
{
   public string Name { get; set; }
   public int Age { get; set; }
   public void Greet()
   {
       Console.WriteLine($"Hello, my name is {Name}");
   }
}
List people = new List
{
   new Person { Name = "John", Age = 30 },
   new Person { Name = "Jane", Age = 25 },
   new Person { Name = "Bob", Age = 40 }
};
people.ForEach(person => person.Greet());

В этом примере мы вызываем метод Greet() для каждого объекта Person в списке.

3. Использование внешних переменных:

int totalAge = 0;
people.ForEach(person =>
{
   totalAge += person.Age;
   Console.WriteLine($"{person.Name} is {person.Age} years old.");
});
Console.WriteLine($"Total age: {totalAge}");

В этом примере мы используем внешнюю переменную totalAge внутри лямбда-выражения, чтобы вычислить общий возраст всех людей в списке.

Важно отметить, что ForEach() не возвращает новую коллекцию, а просто выполняет действие для каждого элемента. Если вам нужно создать новую коллекцию на основе существующей, вы можете использовать другие методы LINQ, такие как Select(), Where() или Aggregate().

Еще примеры и реализации:

LINQ ForEach