Enumerable.GroupBy Enumerable.GroupBy Enumerable.GroupBy Enumerable.GroupBy Method

Définition

Regroupe les éléments d'une séquence. Groups the elements of a sequence.

Surcharges

GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>) GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>) GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>) 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. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. Les éléments de chaque groupe sont projetés à l'aide d'une fonction spécifique. The elements of each group are projected by using a specified function.

GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>, IEqualityComparer<TKey>) GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>, IEqualityComparer<TKey>) GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>, IEqualityComparer<TKey>) 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. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. 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. Key values are compared by using a specified comparer, and the elements of each group are projected by using a specified function.

GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) 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. Groups the elements of a sequence according to a specified key selector function and projects the elements for each group by using a specified function.

GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) 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é. Groups the elements of a sequence according to a key selector function. 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. The keys are compared by using a comparer and each group's elements are projected by using a specified function.

GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>) GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>) GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>) 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. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key.

GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>) GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>) GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>) 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. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. Les clés sont comparées à l'aide d'un comparateur spécifié. The keys are compared by using a specified comparer.

GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) 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. Groups the elements of a sequence according to a specified key selector function.

GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) 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é. Groups the elements of a sequence according to a specified key selector function and compares the keys by using a specified comparer.

GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>) GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>) GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>) 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. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. Les éléments de chaque groupe sont projetés à l'aide d'une fonction spécifique. The elements of each group are projected by using a specified function.

public:
generic <typename TSource, typename TKey, typename TElement, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<TResult> ^ GroupBy(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector, Func<TSource, TElement> ^ elementSelector, Func<TKey, System::Collections::Generic::IEnumerable<TElement> ^, TResult> ^ resultSelector);
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);
static member GroupBy : seq<'Source> * Func<'Source, 'Key> * Func<'Source, 'Element> * Func<'Key, seq<'Element>, 'Result> -> seq<'Result>
<Extension()>
Public Function GroupBy(Of TSource, TKey, TElement, TResult) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), elementSelector As Func(Of TSource, TElement), resultSelector As Func(Of TKey, IEnumerable(Of TElement), TResult)) As IEnumerable(Of TResult)
Paramètres de type
TSource

Le type des éléments de source. The type of the elements of source.

TKey

Le type de la clé retournée par keySelector. The type of the key returned by keySelector.

TElement

Type des éléments de chaque IGrouping<TKey,TElement>. The type of the elements in each IGrouping<TKey,TElement>.

TResult

Le type de la valeur de résultat retournée par resultSelector. The type of the result value returned by resultSelector.

Paramètres
source
IEnumerable<TSource>

IEnumerable<T> dont les éléments doivent être regroupés. An IEnumerable<T> whose elements to group.

keySelector
Func<TSource,TKey>

Fonction permettant d'extraire la clé de chaque élément. A function to extract the key for each element.

elementSelector
Func<TSource,TElement>

Fonction permettant de mapper chaque élément source à un élément de IGrouping<TKey,TElement>. A function to map each source element to an element in an IGrouping<TKey,TElement>.

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

Fonction permettant de créer une valeur de résultat à partir de chaque groupe. A function to create a result value from each group.

Retours
IEnumerable<TResult>

Collection d'éléments de type TResult où chaque élément représente une projection sur un groupe et sa clé. A collection of elements of type TResult where each element represents a projection over a group and its key.

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 et projeter ensuite une séquence de résultats de type TResult.The following code example demonstrates how to use GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>) to group the projected elements of a sequence and then project a sequence of results of type TResult.

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
    */
}

Structure Pet
    Public Name As String
    Public Age As Double
End Structure

Public Sub GroupByEx4()
    ' Create a list of pets.
    Dim petsList As New List(Of Pet)(New Pet() _
                         {New Pet With {.Name = "Barley", .Age = 8.3},
                          New Pet With {.Name = "Boots", .Age = 4.9},
                          New Pet With {.Name = "Whiskers", .Age = 1.5},
                          New Pet With {.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.
    Dim query = petsList.GroupBy(
Function(pet) Math.Floor(pet.Age),
Function(pet) pet.Age,
Function(baseAge, ages) New With
    {.Key = baseAge,
    .Count = ages.Count(),
    .Min = ages.Min(),
    .Max = ages.Max()}
)

    Dim output As New System.Text.StringBuilder
    ' Iterate over each anonymous type.
    For Each result In query
        output.AppendLine(vbCrLf & "Age group: " & result.Key)
        output.AppendLine("Number of pets in this age group: " & result.Count)
        output.AppendLine("Minimum age: " & result.Min)
        output.AppendLine("Maximum age: " & result.Max)
    Next

    ' Display the output.
    MsgBox(output.ToString)
End Sub

' 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 d’expression de requête, un group by (Visual c#) ou Group By Into les clause (Visual Basic) se traduit par un appel à GroupBy.In query expression syntax, a group by (Visual C#) or Group By Into (Visual Basic) clause translates to an invocation of GroupBy.

Voir aussi

GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>, IEqualityComparer<TKey>) GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>, IEqualityComparer<TKey>) GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>, IEqualityComparer<TKey>) 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. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. 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. Key values are compared by using a specified comparer, and the elements of each group are projected by using a specified function.

public:
generic <typename TSource, typename TKey, typename TElement, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<TResult> ^ GroupBy(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);
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);
static member GroupBy : seq<'Source> * Func<'Source, 'Key> * Func<'Source, 'Element> * Func<'Key, seq<'Element>, 'Result> * System.Collections.Generic.IEqualityComparer<'Key> -> seq<'Result>
<Extension()>
Public Function GroupBy(Of TSource, TKey, TElement, TResult) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), elementSelector As Func(Of TSource, TElement), resultSelector As Func(Of TKey, IEnumerable(Of TElement), TResult), comparer As IEqualityComparer(Of TKey)) As IEnumerable(Of TResult)
Paramètres de type
TSource

Le type des éléments de source. The type of the elements of source.

TKey

Le type de la clé retournée par keySelector. The type of the key returned by keySelector.

TElement

Type des éléments de chaque IGrouping<TKey,TElement>. The type of the elements in each IGrouping<TKey,TElement>.

TResult

Le type de la valeur de résultat retournée par resultSelector. The type of the result value returned by resultSelector.

Paramètres
source
IEnumerable<TSource>

IEnumerable<T> dont les éléments doivent être regroupés. An IEnumerable<T> whose elements to group.

keySelector
Func<TSource,TKey>

Fonction permettant d'extraire la clé de chaque élément. A function to extract the key for each element.

elementSelector
Func<TSource,TElement>

Fonction permettant de mapper chaque élément source à un élément de IGrouping<TKey,TElement>. A function to map each source element to an element in an IGrouping<TKey,TElement>.

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

Fonction permettant de créer une valeur de résultat à partir de chaque groupe. A function to create a result value from each group.

comparer
IEqualityComparer<TKey>

IEqualityComparer<T> avec lequel comparer les clés. An IEqualityComparer<T> to compare keys with.

Retours
IEnumerable<TResult>

Collection d'éléments de type TResult où chaque élément représente une projection sur un groupe et sa clé. A collection of elements of type TResult where each element represents a projection over a group and its key.

Voir aussi

GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) 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. Groups the elements of a sequence according to a specified key selector function and projects the elements for each group by using a specified function.

public:
generic <typename TSource, typename TKey, typename TElement>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Linq::IGrouping<TKey, TElement> ^> ^ GroupBy(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector, Func<TSource, TElement> ^ elementSelector);
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);
static member GroupBy : seq<'Source> * Func<'Source, 'Key> * Func<'Source, 'Element> -> seq<System.Linq.IGrouping<'Key, 'Element>>
<Extension()>
Public Function GroupBy(Of TSource, TKey, TElement) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), elementSelector As Func(Of TSource, TElement)) As IEnumerable(Of IGrouping(Of TKey, TElement))
Paramètres de type
TSource

Le type des éléments de source. The type of the elements of source.

TKey

Le type de la clé retournée par keySelector. The type of the key returned by keySelector.

TElement

Type des éléments dans le IGrouping<TKey,TElement>. The type of the elements in the IGrouping<TKey,TElement>.

Paramètres
source
IEnumerable<TSource>

IEnumerable<T> dont les éléments doivent être regroupés. An IEnumerable<T> whose elements to group.

keySelector
Func<TSource,TKey>

Fonction permettant d'extraire la clé de chaque élément. A function to extract the key for each element.

elementSelector
Func<TSource,TElement>

Fonction permettant de mapper chaque élément source à un élément de IGrouping<TKey,TElement>. A function to map each source element to an element in the IGrouping<TKey,TElement>.

Retours
IEnumerable<IGrouping<TKey,TElement>>

IEnumerable<IGrouping<TKey, TElement>> en C# ou IEnumerable(Of IGrouping(Of TKey, TElement)) en Visual Basic où chaque objet IGrouping<TKey,TElement> contient une collection d’objets de type TElement et une clé. An IEnumerable<IGrouping<TKey, TElement>> in C# or IEnumerable(Of IGrouping(Of TKey, TElement)) in Visual Basic where each IGrouping<TKey,TElement> object contains a collection of objects of type TElement and a key.

Exceptions

source ou keySelector ou elementSelector a la valeur null. source or keySelector or elementSelector is 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.The following code example demonstrates how to use GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) to group the elements of a sequence.

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
*/

Structure Pet
    Public Name As String
    Public Age As Integer
End Structure

Sub GroupByEx1()
    'Create a list of Pet objects.
    Dim pets As New List(Of Pet)(New Pet() _
                         {New Pet With {.Name = "Barley", .Age = 8},
                          New Pet With {.Name = "Boots", .Age = 4},
                          New Pet With {.Name = "Whiskers", .Age = 1},
                          New Pet With {.Name = "Daisy", .Age = 4}})

    ' Group the pets using Age as the key 
    ' and selecting only the pet's Name for each value.
    Dim query As IEnumerable(Of IGrouping(Of Integer, String)) =
pets.GroupBy(Function(pet) pet.Age,
             Function(pet) pet.Name)

    Dim output As New System.Text.StringBuilder
    ' Iterate over each IGrouping in the collection.
    For Each petGroup As IGrouping(Of Integer, String) In query
        ' Print the key value of the IGrouping.
        output.AppendLine(petGroup.Key)
        ' Iterate over each value in the IGrouping and print the value.
        For Each name As String In petGroup
            output.AppendLine("  " & name)
        Next
    Next

    ' Display the output.
    MsgBox(output.ToString)
End Sub

' This code produces the following output:
'
' 8
'   Barley
' 4
'   Boots
'   Daisy
' 1
'   Whiskers

Dans la syntaxe d’expression de requête, un group by (Visual c#) ou Group By Into les clause (Visual Basic) se traduit par un appel à GroupBy.In query expression syntax, a group by (Visual C#) or Group By Into (Visual Basic) clause translates to an invocation of GroupBy. La traduction de l’expression de requête dans l’exemple suivant est équivalente à la requête dans l’exemple ci-dessus.The translation of the query expression in the following example is equivalent to the query in the example above.

IEnumerable<IGrouping<int, string>> query =
    from pet in pets
    group pet.Name by pet.Age;
    Dim query =
From pet In pets
Group pet.Name By Age = pet.Age Into ageGroup = Group

Note

Dans une expression de requête Visual c# ou Visual Basic, les expressions de sélection d’élément et la clé se produisent dans l’ordre inverse à partir de leurs positions d’argument dans un appel à la GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) (méthode).In a Visual C# or Visual Basic query expression, the element and key selection expressions occur in the reverse order from their argument positions in a call to the GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) method.

Remarques

Cette méthode est implémentée à l’aide de l’exécution différée.This method is implemented by using deferred execution. L’exécution valeur de retour est un objet qui stocke toutes les informations qui sont requis pour effectuer l’action.The immediate return value is an object that stores all the information that is required to perform the action. La requête représentée par cette méthode n’est pas exécutée jusqu'à ce que l’objet est énumérée en appelant son GetEnumerator méthode directement ou en utilisant foreach en Visual c# ou For Each en Visual Basic.The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

Le GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) méthode retourne une collection de IGrouping<TKey,TElement> objets, un pour chaque clé distincte qui a été rencontrée.The GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) method returns a collection of IGrouping<TKey,TElement> objects, one for each distinct key that was encountered. Un IGrouping<TKey,TElement> est un IEnumerable<T> qui possède également une clé associée à ses éléments.An IGrouping<TKey,TElement> is an IEnumerable<T> that also has a key associated with its elements.

Le IGrouping<TKey,TElement> objets sont rapportés dans un ordre basé sur l’ordre des éléments dans source qui produit la première clé de chaque IGrouping<TKey,TElement>.The IGrouping<TKey,TElement> objects are yielded in an order based on the order of the elements in source that produced the first key of each IGrouping<TKey,TElement>. Éléments d’un regroupement sont rapportés dans l’ordre où les éléments qui a produit les apparaissent dans source.Elements in a grouping are yielded in the order that the elements that produced them appear in source.

Le comparateur d’égalité par défaut Default est utilisé pour comparer les clés.The default equality comparer Default is used to compare keys.

Voir aussi

GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) 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é. Groups the elements of a sequence according to a key selector function. 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. The keys are compared by using a comparer and each group's elements are projected by using a specified function.

public:
generic <typename TSource, typename TKey, typename TElement>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Linq::IGrouping<TKey, TElement> ^> ^ GroupBy(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector, Func<TSource, TElement> ^ elementSelector, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
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);
static member GroupBy : seq<'Source> * Func<'Source, 'Key> * Func<'Source, 'Element> * System.Collections.Generic.IEqualityComparer<'Key> -> seq<System.Linq.IGrouping<'Key, 'Element>>
<Extension()>
Public Function GroupBy(Of TSource, TKey, TElement) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), elementSelector As Func(Of TSource, TElement), comparer As IEqualityComparer(Of TKey)) As IEnumerable(Of IGrouping(Of TKey, TElement))
Paramètres de type
TSource

Le type des éléments de source. The type of the elements of source.

TKey

Le type de la clé retournée par keySelector. The type of the key returned by keySelector.

TElement

Type des éléments dans le IGrouping<TKey,TElement>. The type of the elements in the IGrouping<TKey,TElement>.

Paramètres
source
IEnumerable<TSource>

IEnumerable<T> dont les éléments doivent être regroupés. An IEnumerable<T> whose elements to group.

keySelector
Func<TSource,TKey>

Fonction permettant d'extraire la clé de chaque élément. A function to extract the key for each element.

elementSelector
Func<TSource,TElement>

Fonction permettant de mapper chaque élément source à un élément de IGrouping<TKey,TElement>. A function to map each source element to an element in an IGrouping<TKey,TElement>.

comparer
IEqualityComparer<TKey>

IEqualityComparer<T> pour comparer les clés. An IEqualityComparer<T> to compare keys.

Retours
IEnumerable<IGrouping<TKey,TElement>>

IEnumerable<IGrouping<TKey, TElement>> en C# ou IEnumerable(Of IGrouping(Of TKey, TElement)) en Visual Basic où chaque objet IGrouping<TKey,TElement> contient une collection d’objets de type TElement et une clé. An IEnumerable<IGrouping<TKey, TElement>> in C# or IEnumerable(Of IGrouping(Of TKey, TElement)) in Visual Basic where each IGrouping<TKey,TElement> object contains a collection of objects of type TElement and a key.

Exceptions

source ou keySelector ou elementSelector a la valeur null. source or keySelector or elementSelector is null.

Remarques

Cette méthode est implémentée à l’aide de l’exécution différée.This method is implemented by using deferred execution. L’exécution valeur de retour est un objet qui stocke toutes les informations qui sont requis pour effectuer l’action.The immediate return value is an object that stores all the information that is required to perform the action. La requête représentée par cette méthode n’est pas exécutée jusqu'à ce que l’objet est énumérée en appelant son GetEnumerator méthode directement ou en utilisant foreach en Visual c# ou For Each en Visual Basic.The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

Le GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) méthode retourne une collection de IGrouping<TKey,TElement> objets, un pour chaque clé distincte qui a été rencontrée.The GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) method returns a collection of IGrouping<TKey,TElement> objects, one for each distinct key that was encountered. Un IGrouping<TKey,TElement> est un IEnumerable<T> qui possède également une clé associée à ses éléments.An IGrouping<TKey,TElement> is an IEnumerable<T> that also has a key associated with its elements.

Le IGrouping<TKey,TElement> objets sont rapportés dans un ordre basé sur l’ordre des éléments dans source qui produit la première clé de chaque IGrouping<TKey,TElement>.The IGrouping<TKey,TElement> objects are yielded in an order based on the order of the elements in source that produced the first key of each IGrouping<TKey,TElement>. Éléments d’un regroupement sont rapportés dans l’ordre où les éléments qui a produit les apparaissent dans source.Elements in a grouping are yielded in the order that the elements that produced them appear in source.

Si comparer est null, le comparateur d’égalité par défaut Default est utilisé pour comparer les clés.If comparer is null, the default equality comparer Default is used to compare keys.

Si deux clés sont considérés comme égaux selon comparer, la première est choisie comme clé pour ce regroupement.If two keys are considered equal according to comparer, the first key is chosen as the key for that grouping.

Dans la syntaxe d’expression de requête, un group by (Visual c#) ou Group By Into les clause (Visual Basic) se traduit par un appel à GroupBy.In query expression syntax, a group by (Visual C#) or Group By Into (Visual Basic) clause translates to an invocation of GroupBy. Pour plus d’informations et des exemples d’utilisation, consultez group, clause et Group By Clause.For more information and usage examples, see group clause and Group By Clause.

Voir aussi

GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>) GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>) GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>) 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. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key.

public:
generic <typename TSource, typename TKey, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<TResult> ^ GroupBy(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector, Func<TKey, System::Collections::Generic::IEnumerable<TSource> ^, TResult> ^ resultSelector);
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);
static member GroupBy : seq<'Source> * Func<'Source, 'Key> * Func<'Key, seq<'Source>, 'Result> -> seq<'Result>
<Extension()>
Public Function GroupBy(Of TSource, TKey, TResult) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), resultSelector As Func(Of TKey, IEnumerable(Of TSource), TResult)) As IEnumerable(Of TResult)
Paramètres de type
TSource

Le type des éléments de source. The type of the elements of source.

TKey

Le type de la clé retournée par keySelector. The type of the key returned by keySelector.

TResult

Le type de la valeur de résultat retournée par resultSelector. The type of the result value returned by resultSelector.

Paramètres
source
IEnumerable<TSource>

IEnumerable<T> dont les éléments doivent être regroupés. An IEnumerable<T> whose elements to group.

keySelector
Func<TSource,TKey>

Fonction permettant d'extraire la clé de chaque élément. A function to extract the key for each element.

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

Fonction permettant de créer une valeur de résultat à partir de chaque groupe. A function to create a result value from each group.

Retours
IEnumerable<TResult>

Collection d'éléments de type TResult où chaque élément représente une projection sur un groupe et sa clé. A collection of elements of type TResult where each element represents a projection over a group and its key.

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 une séquence de résultats de type de projet TResult.The following code example demonstrates how to use GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>) to group the elements of a sequence and project a sequence of results of type TResult.

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
    */
}

Structure Pet
    Public Name As String
    Public Age As Double
End Structure

Public Sub GroupByEx3()
    ' Create a list of pets.
    Dim petsList As New List(Of Pet)(New Pet() _
                         {New Pet With {.Name = "Barley", .Age = 8.3},
                          New Pet With {.Name = "Boots", .Age = 4.9},
                          New Pet With {.Name = "Whiskers", .Age = 1.5},
                          New Pet With {.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.
    Dim query = petsList.GroupBy(
Function(pet) Math.Floor(pet.Age),
Function(age, pets) New With
    {.Key = age,
    .Count = pets.Count(),
    .Min = pets.Min(Function(pet) pet.Age),
    .Max = pets.Max(Function(Pet) Pet.Age)}
)

    Dim output As New System.Text.StringBuilder
    ' Iterate over each anonymous type.
    For Each result In query
        output.AppendLine(vbCrLf & "Age group: " & result.Key)
        output.AppendLine("Number of pets in this age group: " & result.Count)
        output.AppendLine("Minimum age: " & result.Min)
        output.AppendLine("Maximum age: " & result.Max)
    Next

    ' Display the output.
    MsgBox(output.ToString)
End Sub

' 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 d’expression de requête, un group by (Visual c#) ou Group By Into les clause (Visual Basic) se traduit par un appel à GroupBy.In query expression syntax, a group by (Visual C#) or Group By Into (Visual Basic) clause translates to an invocation of GroupBy.

Voir aussi

GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>) GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>) GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>) 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. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. Les clés sont comparées à l'aide d'un comparateur spécifié. The keys are compared by using a specified comparer.

public:
generic <typename TSource, typename TKey, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<TResult> ^ GroupBy(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);
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);
static member GroupBy : seq<'Source> * Func<'Source, 'Key> * Func<'Key, seq<'Source>, 'Result> * System.Collections.Generic.IEqualityComparer<'Key> -> seq<'Result>
<Extension()>
Public Function GroupBy(Of TSource, TKey, TResult) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), resultSelector As Func(Of TKey, IEnumerable(Of TSource), TResult), comparer As IEqualityComparer(Of TKey)) As IEnumerable(Of TResult)
Paramètres de type
TSource

Le type des éléments de source. The type of the elements of source.

TKey

Le type de la clé retournée par keySelector. The type of the key returned by keySelector.

TResult

Le type de la valeur de résultat retournée par resultSelector. The type of the result value returned by resultSelector.

Paramètres
source
IEnumerable<TSource>

IEnumerable<T> dont les éléments doivent être regroupés. An IEnumerable<T> whose elements to group.

keySelector
Func<TSource,TKey>

Fonction permettant d'extraire la clé de chaque élément. A function to extract the key for each element.

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

Fonction permettant de créer une valeur de résultat à partir de chaque groupe. A function to create a result value from each group.

comparer
IEqualityComparer<TKey>

IEqualityComparer<T> avec lequel comparer les clés. An IEqualityComparer<T> to compare keys with.

Retours
IEnumerable<TResult>

Collection d'éléments de type TResult où chaque élément représente une projection sur un groupe et sa clé. A collection of elements of type TResult where each element represents a projection over a group and its key.

Voir aussi

GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) 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. Groups the elements of a sequence according to a specified key selector function.

public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Linq::IGrouping<TKey, TSource> ^> ^ GroupBy(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector);
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);
static member GroupBy : seq<'Source> * Func<'Source, 'Key> -> seq<System.Linq.IGrouping<'Key, 'Source>>
<Extension()>
Public Function GroupBy(Of TSource, TKey) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey)) As IEnumerable(Of IGrouping(Of TKey, TSource))
Paramètres de type
TSource

Le type des éléments de source. The type of the elements of source.

TKey

Le type de la clé retournée par keySelector. The type of the key returned by keySelector.

Paramètres
source
IEnumerable<TSource>

IEnumerable<T> dont les éléments doivent être regroupés. An IEnumerable<T> whose elements to group.

keySelector
Func<TSource,TKey>

Fonction permettant d'extraire la clé de chaque élément. A function to extract the key for each element.

Retours
IEnumerable<IGrouping<TKey,TSource>>

IEnumerable<IGrouping<TKey, TSource>> en C# ou IEnumerable(Of IGrouping(Of TKey, TSource)) en Visual Basic où chaque objet IGrouping<TKey,TElement> contient une séquence d’objets et une clé. An IEnumerable<IGrouping<TKey, TSource>> in C# or IEnumerable(Of IGrouping(Of TKey, TSource)) in Visual Basic where each IGrouping<TKey,TElement> object contains a sequence of objects and a key.

Exceptions

source ou keySelector a la valeur null. source or keySelector is null.

Remarques

Cette méthode est implémentée à l’aide de l’exécution différée.This method is implemented by using deferred execution. L’exécution valeur de retour est un objet qui stocke toutes les informations qui sont requis pour effectuer l’action.The immediate return value is an object that stores all the information that is required to perform the action. La requête représentée par cette méthode n’est pas exécutée jusqu'à ce que l’objet est énumérée en appelant son GetEnumerator méthode directement ou en utilisant foreach en Visual c# ou For Each en Visual Basic.The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

Le GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) méthode retourne une collection de IGrouping<TKey,TElement> objets, un pour chaque clé distincte qui a été rencontrée.The GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) method returns a collection of IGrouping<TKey,TElement> objects, one for each distinct key that was encountered. Un IGrouping<TKey,TElement> est un IEnumerable<T> qui possède également une clé associée à ses éléments.An IGrouping<TKey,TElement> is an IEnumerable<T> that also has a key associated with its elements.

Le IGrouping<TKey,TElement> objets sont rapportés dans un ordre basé sur l’ordre des éléments dans source qui produit la première clé de chaque IGrouping<TKey,TElement>.The IGrouping<TKey,TElement> objects are yielded in an order based on the order of the elements in source that produced the first key of each IGrouping<TKey,TElement>. Éléments d’un regroupement sont rapportés dans l’ordre d’apparition dans source.Elements in a grouping are yielded in the order they appear in source.

Le comparateur d’égalité par défaut Default est utilisé pour comparer les clés.The default equality comparer Default is used to compare keys.

Dans la syntaxe d’expression de requête, un group by (Visual c#) ou Group By Into les clause (Visual Basic) se traduit par un appel à GroupBy.In query expression syntax, a group by (Visual C#) or Group By Into (Visual Basic) clause translates to an invocation of GroupBy. Pour plus d’informations et des exemples d’utilisation, consultez group, clause et Group By Clause.For more information and usage examples, see group clause and Group By Clause.

Voir aussi

GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) 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é. Groups the elements of a sequence according to a specified key selector function and compares the keys by using a specified comparer.

public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Linq::IGrouping<TKey, TSource> ^> ^ GroupBy(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
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);
static member GroupBy : seq<'Source> * Func<'Source, 'Key> * System.Collections.Generic.IEqualityComparer<'Key> -> seq<System.Linq.IGrouping<'Key, 'Source>>
<Extension()>
Public Function GroupBy(Of TSource, TKey) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), comparer As IEqualityComparer(Of TKey)) As IEnumerable(Of IGrouping(Of TKey, TSource))
Paramètres de type
TSource

Le type des éléments de source. The type of the elements of source.

TKey

Le type de la clé retournée par keySelector. The type of the key returned by keySelector.

Paramètres
source
IEnumerable<TSource>

IEnumerable<T> dont les éléments doivent être regroupés. An IEnumerable<T> whose elements to group.

keySelector
Func<TSource,TKey>

Fonction permettant d'extraire la clé de chaque élément. A function to extract the key for each element.

comparer
IEqualityComparer<TKey>

IEqualityComparer<T> pour comparer les clés. An IEqualityComparer<T> to compare keys.

Retours
IEnumerable<IGrouping<TKey,TSource>>

IEnumerable<IGrouping<TKey, TSource>> en C# ou IEnumerable(Of IGrouping(Of TKey, TSource)) en Visual Basic où chaque objet IGrouping<TKey,TElement> contient une collection d’objets et une clé. An IEnumerable<IGrouping<TKey, TSource>> in C# or IEnumerable(Of IGrouping(Of TKey, TSource)) in Visual Basic where each IGrouping<TKey,TElement> object contains a collection of objects and a key.

Exceptions

source ou keySelector a la valeur null. source or keySelector is null.

Remarques

Cette méthode est implémentée à l’aide de l’exécution différée.This method is implemented by using deferred execution. L’exécution valeur de retour est un objet qui stocke toutes les informations qui sont requis pour effectuer l’action.The immediate return value is an object that stores all the information that is required to perform the action. La requête représentée par cette méthode n’est pas exécutée jusqu'à ce que l’objet est énumérée en appelant son GetEnumerator méthode directement ou en utilisant foreach en Visual c# ou For Each en Visual Basic.The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

Le GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) méthode retourne une collection de IGrouping<TKey,TElement> objets, un pour chaque clé distincte qui a été rencontrée.The GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) method returns a collection of IGrouping<TKey,TElement> objects, one for each distinct key that was encountered. Un IGrouping<TKey,TElement> est un IEnumerable<T> qui possède également une clé associée à ses éléments.An IGrouping<TKey,TElement> is an IEnumerable<T> that also has a key associated with its elements.

Le IGrouping<TKey,TElement> objets sont rapportés dans un ordre basé sur l’ordre des éléments dans source qui produit la première clé de chaque IGrouping<TKey,TElement>.The IGrouping<TKey,TElement> objects are yielded in an order based on the order of the elements in source that produced the first key of each IGrouping<TKey,TElement>. Éléments d’un regroupement sont rapportés dans l’ordre d’apparition dans source.Elements in a grouping are yielded in the order they appear in source.

Si comparer est null, le comparateur d’égalité par défaut Default est utilisé pour comparer les clés.If comparer is null, the default equality comparer Default is used to compare keys.

Si deux clés sont considérés comme égaux selon comparer, la première est choisie comme clé pour ce regroupement.If two keys are considered equal according to comparer, the first key is chosen as the key for that grouping.

Dans la syntaxe d’expression de requête, un group by (Visual c#) ou Group By Into les clause (Visual Basic) se traduit par un appel à GroupBy.In query expression syntax, a group by (Visual C#) or Group By Into (Visual Basic) clause translates to an invocation of GroupBy. Pour plus d’informations et des exemples d’utilisation, consultez group, clause et Group By Clause.For more information and usage examples, see group clause and Group By Clause.

Voir aussi

S’applique à