C# Language Expression Lambda


Exemple

Lambda Expresions est une extension de méthodes anonymes qui permettent des paramètres et des valeurs de retour implicitement typés. Leur syntaxe est moins verbeuse que les méthodes anonymes et suit un style de programmation fonctionnel.

using System;
using System.Collections.Generic;
using System.Linq;
                    
public class Program
{
    public static void Main()
    {
        var numberList = new List<int> {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        var sumOfSquares = numberList.Select( number => number * number )
            .Aggregate( (int first, int second) => { return first + second; } );
        Console.WriteLine( sumOfSquares );
    }
}

Le code ci-dessus affichera la somme des carrés des nombres 1 à 10 sur la console.

La première expression lambda place les nombres dans la liste. Comme il n'y a que 1 paramètre, la parenthèse peut être omise. Vous pouvez inclure des parenthèses si vous le souhaitez:

.Select( (number) => number * number);

ou tapez explicitement le paramètre mais les parenthèses sont nécessaires:

.Select( (int number) => number * number);

Le corps lambda est une expression et a un retour implicite. Vous pouvez également utiliser un corps de déclaration si vous le souhaitez. Ceci est utile pour les lambda plus complexes.

.Select( number => { return number * number; } );

La méthode select renvoie un nouveau IEnumerable avec les valeurs calculées.

La seconde expression lambda additionne les nombres dans la liste renvoyés par la méthode select. Les parenthèses sont nécessaires car il y a plusieurs paramètres. Les types de paramètres sont explicitement tapés, mais cela n'est pas nécessaire. La méthode ci-dessous est équivalente.

.Aggregate( (first, second) => { return first + second; } );

Comme celui-ci:

.Aggregate( (int first, int second) => first + second );