LINQ ForEach

Summary: in this tutorial, you’ll learn how to use the LINQ ForEach() method to execute an operation on each element of a sequence.

Introduction to the LINQ ForEach() method

The ForEach() method allows you to execute an action on each element of a sequence.

Here’s the syntax of the ForEach() method:

public static void ForEach<T>(
    this IEnumerable<T> source, 
    Action<T> action
);Code language: C# (cs)

In this syntax:

  • T is the type of elements in the source sequence.
  • source is the input sequence that has the IEnumerable<T>.
  • action is the operation that applies to each element of the source sequence.

LINQ ForEach examples

Let’s take some examples of using the LINQ ForEach() method.

1) The basic LINQ ForEach() usage

The following example demonstrates how to use the ForEach() method to write integers of a list to the console:

using static System.Console;

var numbers = new List<int> { 1, 2, 3, 4, 5 };

numbers.ForEach(WriteLine);Code language: C# (cs)

Output:

1
2
3
4
5Code language: C# (cs)

In this example, we pass the WriteLine method to the ForEach() method. The ForEach() method executes the WriteLine method on each integer of the numbers list that writes each number to the console.

2) Using LINQ ForEach() to calculate line total of products

The following example demonstrates how to use the ForEach() method to calculate the line total of products:

class Product
{
    public string Name { get; set; }
    public decimal Price { get; set; }
    public int Quantity { get; set; }

    public Product(string name, decimal price, int quantity)
    {
        Name = name;
        Price = price;
        Quantity = quantity;
    }
}

class Program
{
    static void Main(string[] args)
    {
        var products = new List<Product>()
        {
            new Product("Apple", 0.99m, 2),
            new Product("Banana", 1.29m, 3),
            new Product("Orange", 0.89m, 4),
            new Product("Grapes", 2.49m, 1)
        };

        decimal total = 0m;

        products.ForEach(product =>
        {
            decimal lineTotal = product.Price * product.Quantity;
            Console.WriteLine($"{product.Name} x {product.Quantity}: {lineTotal:C}");
            total += lineTotal;
        });


        Console.WriteLine($"Total: {total:C}");
    }
}
Code language: C# (cs)

Output:

Apple x 2: $1.98
Banana x 3: $3.87
Orange x 4: $3.56
Grapes x 1: $2.49
Total: $11.90Code language: C# (cs)

Summary

  • Use the LINQ ForEach() method to apply an action on each element of a sequence.
Was this tutorial helpful ?