Lire en anglais

Partager via


Enumerable.GroupBy Méthode

Définition

Regroupe les éléments d'une séquence.

Surcharges

GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>)

Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et crée une valeur de résultat à partir de chaque groupe et de la clé correspondante. Les éléments de chaque groupe sont projetés à l'aide d'une fonction spécifique.

GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>)

Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et crée une valeur de résultat à partir de chaque groupe et de la clé correspondante. Les valeurs de clé sont comparées à l'aide du comparateur spécifié et les éléments de chaque groupe sont projetés à l'aide d'une fonction spécifique.

GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)

Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et projette les éléments de chaque groupe à l'aide de la fonction indiquée.

GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

Regroupe les éléments d'une séquence selon une fonction de sélection de clé. Les clés sont comparées à l'aide d'un comparateur et les éléments de chaque groupe sont projetés à l'aide d'une fonction spécifique.

GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>)

Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et crée une valeur de résultat à partir de chaque groupe et de la clé correspondante.

GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>)

Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et crée une valeur de résultat à partir de chaque groupe et de la clé correspondante. Les clés sont comparées à l'aide d'un comparateur spécifié.

GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée.

GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et compare les clés à l'aide du comparateur indiqué.

GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>)

Source:
Grouping.cs
Source:
Grouping.cs
Source:
Grouping.cs

Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et crée une valeur de résultat à partir de chaque groupe et de la clé correspondante. Les éléments de chaque groupe sont projetés à l'aide d'une fonction spécifique.

C#
public static System.Collections.Generic.IEnumerable<TResult> GroupBy<TSource,TKey,TElement,TResult> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, Func<TSource,TElement> elementSelector, Func<TKey,System.Collections.Generic.IEnumerable<TElement>,TResult> resultSelector);

Paramètres de type

TSource

Le type des éléments de source.

TKey

Type de clé retournée par keySelector.

TElement

Type des éléments de chaque IGrouping<TKey,TElement>.

TResult

Type de la valeur de résultat retournée par resultSelector.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> dont les éléments doivent être regroupés.

keySelector
Func<TSource,TKey>

Fonction permettant d'extraire la clé de chaque élément.

elementSelector
Func<TSource,TElement>

Fonction permettant de mapper chaque élément source à un élément de IGrouping<TKey,TElement>.

resultSelector
Func<TKey,IEnumerable<TElement>,TResult>

Fonction permettant de créer une valeur de résultat à partir de chaque groupe.

Retours

IEnumerable<TResult>

Collection d'éléments de type TResult où chaque élément représente une projection sur un groupe et sa clé.

Exceptions

source ou keySelector ou elementSelector ou resultSelector a la valeur null.

Exemples

L’exemple de code suivant montre comment utiliser GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>) pour regrouper les éléments projetés d’une séquence, puis projeter une séquence de résultats de type TResult.

C#
class Pet
{
    public string Name { get; set; }
    public double Age { get; set; }
}

public static void GroupByEx4()
{
    // Create a list of pets.
    List<Pet> petsList =
        new List<Pet>{ new Pet { Name="Barley", Age=8.3 },
                       new Pet { Name="Boots", Age=4.9 },
                       new Pet { Name="Whiskers", Age=1.5 },
                       new Pet { Name="Daisy", Age=4.3 } };

    // Group Pet.Age values by the Math.Floor of the age.
    // Then project an anonymous type from each group
    // that consists of the key, the count of the group's
    // elements, and the minimum and maximum age in the group.
    var query = petsList.GroupBy(
        pet => Math.Floor(pet.Age),
        pet => pet.Age,
        (baseAge, ages) => new
        {
            Key = baseAge,
            Count = ages.Count(),
            Min = ages.Min(),
            Max = ages.Max()
        });

    // Iterate over each anonymous type.
    foreach (var result in query)
    {
        Console.WriteLine("\nAge group: " + result.Key);
        Console.WriteLine("Number of pets in this age group: " + result.Count);
        Console.WriteLine("Minimum age: " + result.Min);
        Console.WriteLine("Maximum age: " + result.Max);
    }

    /*  This code produces the following output:

        Age group: 8
        Number of pets in this age group: 1
        Minimum age: 8.3
        Maximum age: 8.3

        Age group: 4
        Number of pets in this age group: 2
        Minimum age: 4.3
        Maximum age: 4.9

        Age group: 1
        Number of pets in this age group: 1
        Minimum age: 1.5
        Maximum age: 1.5
    */
}

Remarques

Dans la syntaxe de l’expression de requête, une group by clause (C#) ou Group By Into (Visual Basic) se traduit par un appel de GroupBy.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>)

Source:
Grouping.cs
Source:
Grouping.cs
Source:
Grouping.cs

Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et crée une valeur de résultat à partir de chaque groupe et de la clé correspondante. Les valeurs de clé sont comparées à l'aide du comparateur spécifié et les éléments de chaque groupe sont projetés à l'aide d'une fonction spécifique.

C#
public static System.Collections.Generic.IEnumerable<TResult> GroupBy<TSource,TKey,TElement,TResult> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, Func<TSource,TElement> elementSelector, Func<TKey,System.Collections.Generic.IEnumerable<TElement>,TResult> resultSelector, System.Collections.Generic.IEqualityComparer<TKey> comparer);
C#
public static System.Collections.Generic.IEnumerable<TResult> GroupBy<TSource,TKey,TElement,TResult> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, Func<TSource,TElement> elementSelector, Func<TKey,System.Collections.Generic.IEnumerable<TElement>,TResult> resultSelector, System.Collections.Generic.IEqualityComparer<TKey>? comparer);

Paramètres de type

TSource

Le type des éléments de source.

TKey

Type de clé retournée par keySelector.

TElement

Type des éléments de chaque IGrouping<TKey,TElement>.

TResult

Type de la valeur de résultat retournée par resultSelector.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> dont les éléments doivent être regroupés.

keySelector
Func<TSource,TKey>

Fonction permettant d'extraire la clé de chaque élément.

elementSelector
Func<TSource,TElement>

Fonction permettant de mapper chaque élément source à un élément de IGrouping<TKey,TElement>.

resultSelector
Func<TKey,IEnumerable<TElement>,TResult>

Fonction permettant de créer une valeur de résultat à partir de chaque groupe.

comparer
IEqualityComparer<TKey>

IEqualityComparer<T> avec lequel comparer les clés.

Retours

IEnumerable<TResult>

Collection d'éléments de type TResult où chaque élément représente une projection sur un groupe et sa clé.

Exceptions

source ou keySelector ou elementSelector ou resultSelector a la valeur null.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)

Source:
Grouping.cs
Source:
Grouping.cs
Source:
Grouping.cs

Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et projette les éléments de chaque groupe à l'aide de la fonction indiquée.

C#
public static System.Collections.Generic.IEnumerable<System.Linq.IGrouping<TKey,TElement>> GroupBy<TSource,TKey,TElement> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, Func<TSource,TElement> elementSelector);

Paramètres de type

TSource

Le type des éléments de source.

TKey

Type de clé retournée par keySelector.

TElement

Type des éléments dans le IGrouping<TKey,TElement>.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> dont les éléments doivent être regroupés.

keySelector
Func<TSource,TKey>

Fonction permettant d'extraire la clé de chaque élément.

elementSelector
Func<TSource,TElement>

Fonction permettant de mapper chaque élément source à un élément de IGrouping<TKey,TElement>.

Retours

IEnumerable<IGrouping<TKey,TElement>>

en IEnumerable<IGrouping<TKey, TElement>> C# ou IEnumerable(Of IGrouping(Of TKey, TElement)) en Visual Basic où chaque IGrouping<TKey,TElement> objet contient une collection d’objets de type TElement et une clé.

Exceptions

source ou keySelector ou elementSelector a la valeur null.

Exemples

L’exemple de code suivant montre comment utiliser GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) pour regrouper les éléments d’une séquence.

C#
class Pet
{
    public string Name { get; set; }
    public int Age { get; set; }
}

// Uses method-based query syntax.
public static void GroupByEx1()
{
    // Create a list of pets.
    List<Pet> pets =
        new List<Pet>{ new Pet { Name="Barley", Age=8 },
                       new Pet { Name="Boots", Age=4 },
                       new Pet { Name="Whiskers", Age=1 },
                       new Pet { Name="Daisy", Age=4 } };

    // Group the pets using Age as the key value
    // and selecting only the pet's Name for each value.
    IEnumerable<IGrouping<int, string>> query =
        pets.GroupBy(pet => pet.Age, pet => pet.Name);

    // Iterate over each IGrouping in the collection.
    foreach (IGrouping<int, string> petGroup in query)
    {
        // Print the key value of the IGrouping.
        Console.WriteLine(petGroup.Key);
        // Iterate over each value in the
        // IGrouping and print the value.
        foreach (string name in petGroup)
            Console.WriteLine("  {0}", name);
    }
}

/*
 This code produces the following output:

 8
   Barley
 4
   Boots
   Daisy
 1
   Whiskers
*/

Dans la syntaxe de l’expression de requête, une group by clause (C#) ou Group By Into (Visual Basic) se traduit par un appel de GroupBy. La traduction de l’expression de requête dans l’exemple suivant est équivalente à la requête dans l’exemple ci-dessus.

C#
IEnumerable<IGrouping<int, string>> query =
    from pet in pets
    group pet.Name by pet.Age;

Note

Dans une expression de requête C# ou Visual Basic, les expressions de sélection d’éléments et de clés se produisent dans l’ordre inverse de leurs positions d’argument dans un appel à la GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) méthode.

Remarques

Cette méthode est implémentée à l’aide d’une exécution différée. La valeur de retour immédiat est un objet qui stocke toutes les informations nécessaires à l’exécution de l’action. La requête représentée par cette méthode n’est pas exécutée tant que l’objet n’est pas énuméré soit en appelant directement sa GetEnumerator méthode, soit en utilisant foreach en C# ou For Each en Visual Basic.

La GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) méthode retourne une collection d’objets IGrouping<TKey,TElement> , un pour chaque clé distincte rencontrée. Un IGrouping<TKey,TElement> est un IEnumerable<T> qui a également une clé associée à ses éléments.

Les IGrouping<TKey,TElement> objets sont générés dans un ordre basé sur l’ordre des éléments dans source lequel a produit la première clé de chaque IGrouping<TKey,TElement>. Les éléments d’un regroupement sont générés dans l’ordre dans lequel les éléments qui les ont produits apparaissent dans source.

Le comparateur Default d’égalité par défaut est utilisé pour comparer les clés.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

Source:
Grouping.cs
Source:
Grouping.cs
Source:
Grouping.cs

Regroupe les éléments d'une séquence selon une fonction de sélection de clé. Les clés sont comparées à l'aide d'un comparateur et les éléments de chaque groupe sont projetés à l'aide d'une fonction spécifique.

C#
public static System.Collections.Generic.IEnumerable<System.Linq.IGrouping<TKey,TElement>> GroupBy<TSource,TKey,TElement> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, Func<TSource,TElement> elementSelector, System.Collections.Generic.IEqualityComparer<TKey> comparer);
C#
public static System.Collections.Generic.IEnumerable<System.Linq.IGrouping<TKey,TElement>> GroupBy<TSource,TKey,TElement> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, Func<TSource,TElement> elementSelector, System.Collections.Generic.IEqualityComparer<TKey>? comparer);

Paramètres de type

TSource

Le type des éléments de source.

TKey

Type de clé retournée par keySelector.

TElement

Type des éléments dans le IGrouping<TKey,TElement>.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> dont les éléments doivent être regroupés.

keySelector
Func<TSource,TKey>

Fonction permettant d'extraire la clé de chaque élément.

elementSelector
Func<TSource,TElement>

Fonction permettant de mapper chaque élément source à un élément de IGrouping<TKey,TElement>.

comparer
IEqualityComparer<TKey>

IEqualityComparer<T> pour comparer les clés.

Retours

IEnumerable<IGrouping<TKey,TElement>>

en IEnumerable<IGrouping<TKey, TElement>> C# ou IEnumerable(Of IGrouping(Of TKey, TElement)) en Visual Basic où chaque IGrouping<TKey,TElement> objet contient une collection d’objets de type TElement et une clé.

Exceptions

source ou keySelector ou elementSelector a la valeur null.

Remarques

Cette méthode est implémentée à l’aide d’une exécution différée. La valeur de retour immédiat est un objet qui stocke toutes les informations nécessaires à l’exécution de l’action. La requête représentée par cette méthode n’est pas exécutée tant que l’objet n’est pas énuméré soit en appelant directement sa GetEnumerator méthode, soit en utilisant foreach en C# ou For Each en Visual Basic.

La GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) méthode retourne une collection d’objets IGrouping<TKey,TElement> , un pour chaque clé distincte rencontrée. Un IGrouping<TKey,TElement> est un IEnumerable<T> qui a également une clé associée à ses éléments.

Les IGrouping<TKey,TElement> objets sont générés dans un ordre basé sur l’ordre des éléments dans source lequel a produit la première clé de chaque IGrouping<TKey,TElement>. Les éléments d’un regroupement sont générés dans l’ordre dans lequel les éléments qui les ont produits apparaissent dans source.

Si comparer a la valeur null, le comparateur Default d’égalité par défaut est utilisé pour comparer les clés.

Si deux clés sont considérées comme égales selon comparer, la première clé est choisie comme clé pour ce regroupement.

Dans la syntaxe de l’expression de requête, une group by clause (C#) ou Group By Into (Visual Basic) se traduit par un appel de GroupBy. Pour plus d’informations et des exemples d’utilisation, consultez Clause de groupe et Clause Group By.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>)

Source:
Grouping.cs
Source:
Grouping.cs
Source:
Grouping.cs

Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et crée une valeur de résultat à partir de chaque groupe et de la clé correspondante.

C#
public static System.Collections.Generic.IEnumerable<TResult> GroupBy<TSource,TKey,TResult> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, Func<TKey,System.Collections.Generic.IEnumerable<TSource>,TResult> resultSelector);

Paramètres de type

TSource

Le type des éléments de source.

TKey

Type de clé retournée par keySelector.

TResult

Type de la valeur de résultat retournée par resultSelector.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> dont les éléments doivent être regroupés.

keySelector
Func<TSource,TKey>

Fonction permettant d'extraire la clé de chaque élément.

resultSelector
Func<TKey,IEnumerable<TSource>,TResult>

Fonction permettant de créer une valeur de résultat à partir de chaque groupe.

Retours

IEnumerable<TResult>

Collection d'éléments de type TResult où chaque élément représente une projection sur un groupe et sa clé.

Exceptions

source ou keySelector ou resultSelector a la valeur null.

Exemples

L’exemple de code suivant montre comment utiliser GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>) pour regrouper les éléments d’une séquence et projeter une séquence de résultats de type TResult.

C#
class Pet
{
    public string Name { get; set; }
    public double Age { get; set; }
}

public static void GroupByEx3()
{
    // Create a list of pets.
    List<Pet> petsList =
        new List<Pet>{ new Pet { Name="Barley", Age=8.3 },
                       new Pet { Name="Boots", Age=4.9 },
                       new Pet { Name="Whiskers", Age=1.5 },
                       new Pet { Name="Daisy", Age=4.3 } };

    // Group Pet objects by the Math.Floor of their age.
    // Then project an anonymous type from each group
    // that consists of the key, the count of the group's
    // elements, and the minimum and maximum age in the group.
    var query = petsList.GroupBy(
        pet => Math.Floor(pet.Age),
        (age, pets) => new
        {
            Key = age,
            Count = pets.Count(),
            Min = pets.Min(pet => pet.Age),
            Max = pets.Max(pet => pet.Age)
        });

    // Iterate over each anonymous type.
    foreach (var result in query)
    {
        Console.WriteLine("\nAge group: " + result.Key);
        Console.WriteLine("Number of pets in this age group: " + result.Count);
        Console.WriteLine("Minimum age: " + result.Min);
        Console.WriteLine("Maximum age: " + result.Max);
    }

    /*  This code produces the following output:

        Age group: 8
        Number of pets in this age group: 1
        Minimum age: 8.3
        Maximum age: 8.3

        Age group: 4
        Number of pets in this age group: 2
        Minimum age: 4.3
        Maximum age: 4.9

        Age group: 1
        Number of pets in this age group: 1
        Minimum age: 1.5
        Maximum age: 1.5
    */
}

Remarques

Dans la syntaxe de l’expression de requête, une group by clause (C#) ou Group By Into (Visual Basic) se traduit par un appel de GroupBy.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>)

Source:
Grouping.cs
Source:
Grouping.cs
Source:
Grouping.cs

Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et crée une valeur de résultat à partir de chaque groupe et de la clé correspondante. Les clés sont comparées à l'aide d'un comparateur spécifié.

C#
public static System.Collections.Generic.IEnumerable<TResult> GroupBy<TSource,TKey,TResult> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, Func<TKey,System.Collections.Generic.IEnumerable<TSource>,TResult> resultSelector, System.Collections.Generic.IEqualityComparer<TKey> comparer);
C#
public static System.Collections.Generic.IEnumerable<TResult> GroupBy<TSource,TKey,TResult> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, Func<TKey,System.Collections.Generic.IEnumerable<TSource>,TResult> resultSelector, System.Collections.Generic.IEqualityComparer<TKey>? comparer);

Paramètres de type

TSource

Le type des éléments de source.

TKey

Type de clé retournée par keySelector.

TResult

Type de la valeur de résultat retournée par resultSelector.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> dont les éléments doivent être regroupés.

keySelector
Func<TSource,TKey>

Fonction permettant d'extraire la clé de chaque élément.

resultSelector
Func<TKey,IEnumerable<TSource>,TResult>

Fonction permettant de créer une valeur de résultat à partir de chaque groupe.

comparer
IEqualityComparer<TKey>

IEqualityComparer<T> avec lequel comparer les clés.

Retours

IEnumerable<TResult>

Collection d'éléments de type TResult où chaque élément représente une projection sur un groupe et sa clé.

Exceptions

source ou keySelector ou resultSelector a la valeur null.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Source:
Grouping.cs
Source:
Grouping.cs
Source:
Grouping.cs

Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée.

C#
public static System.Collections.Generic.IEnumerable<System.Linq.IGrouping<TKey,TSource>> GroupBy<TSource,TKey> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector);

Paramètres de type

TSource

Le type des éléments de source.

TKey

Type de clé retournée par keySelector.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> dont les éléments doivent être regroupés.

keySelector
Func<TSource,TKey>

Fonction permettant d'extraire la clé de chaque élément.

Retours

IEnumerable<IGrouping<TKey,TSource>>

en IEnumerable<IGrouping<TKey, TSource>> C# ou IEnumerable(Of IGrouping(Of TKey, TSource)) en Visual Basic où chaque IGrouping<TKey,TElement> objet contient une séquence d’objets et une clé.

Exceptions

source ou keySelector est null.

Remarques

Cette méthode est implémentée à l’aide d’une exécution différée. La valeur de retour immédiat est un objet qui stocke toutes les informations nécessaires à l’exécution de l’action. La requête représentée par cette méthode n’est pas exécutée tant que l’objet n’est pas énuméré soit en appelant directement sa GetEnumerator méthode, soit en utilisant foreach en C# ou For Each en Visual Basic.

La GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) méthode retourne une collection d’objets IGrouping<TKey,TElement> , un pour chaque clé distincte rencontrée. Un IGrouping<TKey,TElement> est un IEnumerable<T> qui a également une clé associée à ses éléments.

Les IGrouping<TKey,TElement> objets sont générés dans un ordre basé sur l’ordre des éléments dans source lequel a produit la première clé de chaque IGrouping<TKey,TElement>. Les éléments d’un regroupement sont générés dans l’ordre dans lequel ils apparaissent dans source.

Le comparateur Default d’égalité par défaut est utilisé pour comparer les clés.

Dans la syntaxe de l’expression de requête, une group by clause (C#) ou Group By Into (Visual Basic) se traduit par un appel de GroupBy. Pour plus d’informations et des exemples d’utilisation, consultez Clause de groupe et Clause Group By.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Source:
Grouping.cs
Source:
Grouping.cs
Source:
Grouping.cs

Regroupe les éléments d'une séquence selon la fonction de sélection de clé spécifiée et compare les clés à l'aide du comparateur indiqué.

C#
public static System.Collections.Generic.IEnumerable<System.Linq.IGrouping<TKey,TSource>> GroupBy<TSource,TKey> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, System.Collections.Generic.IEqualityComparer<TKey> comparer);
C#
public static System.Collections.Generic.IEnumerable<System.Linq.IGrouping<TKey,TSource>> GroupBy<TSource,TKey> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, System.Collections.Generic.IEqualityComparer<TKey>? comparer);

Paramètres de type

TSource

Le type des éléments de source.

TKey

Type de clé retournée par keySelector.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> dont les éléments doivent être regroupés.

keySelector
Func<TSource,TKey>

Fonction permettant d'extraire la clé de chaque élément.

comparer
IEqualityComparer<TKey>

IEqualityComparer<T> pour comparer les clés.

Retours

IEnumerable<IGrouping<TKey,TSource>>

en IEnumerable<IGrouping<TKey, TSource>> C# ou IEnumerable(Of IGrouping(Of TKey, TSource)) en Visual Basic où chaque IGrouping<TKey,TElement> objet contient une collection d’objets et une clé.

Exceptions

source ou keySelector est null.

Remarques

Cette méthode est implémentée à l’aide d’une exécution différée. La valeur de retour immédiat est un objet qui stocke toutes les informations nécessaires à l’exécution de l’action. La requête représentée par cette méthode n’est pas exécutée tant que l’objet n’est pas énuméré soit en appelant directement sa GetEnumerator méthode, soit en utilisant foreach en C# ou For Each en Visual Basic.

La GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) méthode retourne une collection d’objets IGrouping<TKey,TElement> , un pour chaque clé distincte rencontrée. Un IGrouping<TKey,TElement> est un IEnumerable<T> qui a également une clé associée à ses éléments.

Les IGrouping<TKey,TElement> objets sont générés dans un ordre basé sur l’ordre des éléments dans source lequel a produit la première clé de chaque IGrouping<TKey,TElement>. Les éléments d’un regroupement sont générés dans l’ordre dans lequel ils apparaissent dans source.

Si comparer a la valeur null, le comparateur Default d’égalité par défaut est utilisé pour comparer les clés.

Si deux clés sont considérées comme égales selon comparer, la première clé est choisie comme clé pour ce regroupement.

Dans la syntaxe de l’expression de requête, une group by clause (C#) ou Group By Into (Visual Basic) se traduit par un appel de GroupBy. Pour plus d’informations et des exemples d’utilisation, consultez Clause de groupe et Clause Group By.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0