Číst v angličtině

Sdílet prostřednictvím


Enumerable.GroupBy Metoda

Definice

Seskupí prvky sekvence.

Přetížení

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

Seskupí prvky sekvence podle zadané funkce selektoru klíčů a vytvoří výslednou hodnotu z každé skupiny a jejího klíče. Prvky každé skupiny jsou promítány pomocí zadané funkce.

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

Seskupí prvky sekvence podle zadané funkce selektoru klíčů a vytvoří výslednou hodnotu z každé skupiny a jejího klíče. Hodnoty klíčů se porovnávají pomocí zadaného porovnávače a prvky každé skupiny se promítnou pomocí zadané funkce.

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

Seskupí prvky sekvence podle zadané funkce selektoru klíčů a promítne prvky pro každou skupinu pomocí zadané funkce.

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

Seskupí prvky sekvence podle funkce selektoru klíčů. Klíče se porovnávají pomocí porovnávače a prvky každé skupiny se promítnou pomocí zadané funkce.

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

Seskupí prvky sekvence podle zadané funkce selektoru klíčů a vytvoří výslednou hodnotu z každé skupiny a jejího klíče.

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

Seskupí prvky sekvence podle zadané funkce selektoru klíčů a vytvoří výslednou hodnotu z každé skupiny a jejího klíče. Klíče se porovnávají pomocí zadaného porovnávače.

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

Seskupí prvky sekvence podle zadané funkce selektoru klíčů.

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

Seskupí prvky sekvence podle zadané funkce voliče klíčů a porovná klíče pomocí zadaného porovnávače.

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

Zdroj:
Grouping.cs
Zdroj:
Grouping.cs
Zdroj:
Grouping.cs

Seskupí prvky sekvence podle zadané funkce selektoru klíčů a vytvoří výslednou hodnotu z každé skupiny a jejího klíče. Prvky každé skupiny jsou promítány pomocí zadané funkce.

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);

Parametry typu

TSource

Typ elementů .source

TKey

Typ klíče vráceného nástrojem keySelector.

TElement

Typ prvků v každé IGrouping<TKey,TElement>.

TResult

Typ výsledné hodnoty vrácené nástrojem resultSelector.

Parametry

source
IEnumerable<TSource>

Jejíž IEnumerable<T> prvky se mají seskupit.

keySelector
Func<TSource,TKey>

Funkce, která extrahuje klíč pro každý prvek.

elementSelector
Func<TSource,TElement>

Funkce mapuje každý zdrojový prvek na element v objektu IGrouping<TKey,TElement>.

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

Funkce pro vytvoření výsledné hodnoty z každé skupiny.

Návraty

IEnumerable<TResult>

Kolekce prvků typu TResult , kde každý prvek představuje projekci nad skupinou a jejím klíčem.

Výjimky

source nebo keySelector nebo elementSelectorresultSelector je null.

Příklady

Následující příklad kódu ukazuje, jak použít GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>) k seskupení projektovaných prvků sekvence a pak promítnout sekvenci výsledků typu 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
    */
}

Poznámky

V syntaxi výrazu group by dotazu se klauzule (C#) nebo Group By Into (Visual Basic) překládá na vyvolání výrazu GroupBy.

Viz také

Platí pro

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

Zdroj:
Grouping.cs
Zdroj:
Grouping.cs
Zdroj:
Grouping.cs

Seskupí prvky sekvence podle zadané funkce selektoru klíčů a vytvoří výslednou hodnotu z každé skupiny a jejího klíče. Hodnoty klíčů se porovnávají pomocí zadaného porovnávače a prvky každé skupiny se promítnou pomocí zadané funkce.

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);
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);

Parametry typu

TSource

Typ elementů .source

TKey

Typ klíče vráceného nástrojem keySelector.

TElement

Typ prvků v každé IGrouping<TKey,TElement>.

TResult

Typ výsledné hodnoty vrácené nástrojem resultSelector.

Parametry

source
IEnumerable<TSource>

Jejíž IEnumerable<T> prvky se mají seskupit.

keySelector
Func<TSource,TKey>

Funkce, která extrahuje klíč pro každý prvek.

elementSelector
Func<TSource,TElement>

Funkce mapuje každý zdrojový prvek na element v objektu IGrouping<TKey,TElement>.

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

Funkce pro vytvoření výsledné hodnoty z každé skupiny.

comparer
IEqualityComparer<TKey>

K IEqualityComparer<T> porovnání klíčů s.

Návraty

IEnumerable<TResult>

Kolekce prvků typu TResult , kde každý prvek představuje projekci nad skupinou a jejím klíčem.

Výjimky

source nebo keySelector nebo elementSelectorresultSelector je null.

Viz také

Platí pro

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

Zdroj:
Grouping.cs
Zdroj:
Grouping.cs
Zdroj:
Grouping.cs

Seskupí prvky sekvence podle zadané funkce selektoru klíčů a promítne prvky pro každou skupinu pomocí zadané funkce.

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);

Parametry typu

TSource

Typ elementů .source

TKey

Typ klíče vráceného nástrojem keySelector.

TElement

Typ prvků v .IGrouping<TKey,TElement>

Parametry

source
IEnumerable<TSource>

Jejíž IEnumerable<T> prvky se mají seskupit.

keySelector
Func<TSource,TKey>

Funkce, která extrahuje klíč pro každý prvek.

elementSelector
Func<TSource,TElement>

Funkce mapuje každý zdrojový prvek na element v objektu IGrouping<TKey,TElement>.

Návraty

IEnumerable<IGrouping<TKey,TElement>>

Objekt IEnumerable<IGrouping<TKey, TElement>> v jazyce C# nebo IEnumerable(Of IGrouping(Of TKey, TElement)) Visual Basic, kde každý IGrouping<TKey,TElement> objekt obsahuje kolekci objektů typu TElement a klíč.

Výjimky

source elementSelector nebo keySelector je null.

Příklady

Následující příklad kódu ukazuje, jak použít GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) k seskupení prvků sekvence.

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

V syntaxi výrazu group by dotazu se klauzule (C#) nebo Group By Into (Visual Basic) překládá na vyvolání výrazu GroupBy. Překlad výrazu dotazu v následujícím příkladu je ekvivalentní dotazu ve výše uvedeném příkladu.

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

Poznámka

Ve výrazu dotazu jazyka C# nebo Visual Basic se výrazy výběru elementu a klíče vyskytují v opačném pořadí než jejich pozice argumentů ve volání GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) metody.

Poznámky

Tato metoda se implementuje pomocí odloženého spuštění. Okamžitá návratová hodnota je objekt, který ukládá všechny informace potřebné k provedení akce. Dotaz reprezentovaný touto metodou není proveden, dokud objekt není výčet buď voláním jeho GetEnumerator metody přímo, nebo pomocí foreach v jazyce C# nebo For Each v jazyce Visual Basic.

Metoda GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) vrátí kolekci IGrouping<TKey,TElement> objektů, jeden pro každý jedinečný klíč, který byl zjištěn. An IGrouping<TKey,TElement> je objekt IEnumerable<T> , který má také klíč přidružený k jeho prvkům.

Objekty IGrouping<TKey,TElement> jsou vygenerovány v pořadí na základě pořadí prvků v source , které vytvořily první klíč každého IGrouping<TKey,TElement>. Prvky v seskupení jsou uvedeny v pořadí, v jakém se prvky, které je vytvořily, zobrazí v source.

K porovnání klíčů se používá výchozí porovnávače Default rovnosti.

Viz také

Platí pro

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

Zdroj:
Grouping.cs
Zdroj:
Grouping.cs
Zdroj:
Grouping.cs

Seskupí prvky sekvence podle funkce selektoru klíčů. Klíče se porovnávají pomocí porovnávače a prvky každé skupiny se promítají pomocí zadané funkce.

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);
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);

Parametry typu

TSource

Typ prvků objektu source.

TKey

Typ klíče vráceného nástrojem keySelector.

TElement

Typ prvků v objektu IGrouping<TKey,TElement>.

Parametry

source
IEnumerable<TSource>

Jejíž IEnumerable<T> prvky se mají seskupit.

keySelector
Func<TSource,TKey>

Funkce, která extrahuje klíč pro každý prvek.

elementSelector
Func<TSource,TElement>

Funkce mapuje každý zdrojový prvek na element v objektu IGrouping<TKey,TElement>.

comparer
IEqualityComparer<TKey>

An IEqualityComparer<T> pro porovnání klíčů.

Návraty

IEnumerable<IGrouping<TKey,TElement>>

V IEnumerable<IGrouping<TKey, TElement>> jazyce C# nebo IEnumerable(Of IGrouping(Of TKey, TElement)) Visual Basic, kde každý IGrouping<TKey,TElement> objekt obsahuje kolekci objektů typu TElement a klíč.

Výjimky

source elementSelector nebo keySelector je null.

Poznámky

Tato metoda se implementuje pomocí odloženého spuštění. Okamžitá návratová hodnota je objekt, který ukládá všechny informace potřebné k provedení akce. Dotaz reprezentovaný touto metodou není proveden, dokud objekt není výčet buď voláním jeho GetEnumerator metody přímo, nebo pomocí foreach v jazyce C# nebo For Each v jazyce Visual Basic.

Metoda GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) vrátí kolekci IGrouping<TKey,TElement> objektů, jeden pro každý jedinečný klíč, který byl zjištěn. An IGrouping<TKey,TElement> je objekt IEnumerable<T> , který má také klíč přidružený k jeho prvkům.

Objekty IGrouping<TKey,TElement> jsou vygenerovány v pořadí na základě pořadí prvků v source , které vytvořily první klíč každého IGrouping<TKey,TElement>. Prvky v seskupení jsou uvedeny v pořadí, v jakém se prvky, které je vytvořily, zobrazí v source.

Pokud comparer je null, použije se k porovnání klíčů výchozí porovnávače Default rovnosti.

Pokud jsou dva klíče považovány za stejné podle comparer, první klíč se zvolí jako klíč pro toto seskupení.

V syntaxi výrazu group by dotazu se klauzule (C#) nebo Group By Into (Visual Basic) překládá na vyvolání výrazu GroupBy. Další informace a příklady použití najdete v tématu klauzule seskupování a klauzule Seskupování podle.

Viz také

Platí pro

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

Zdroj:
Grouping.cs
Zdroj:
Grouping.cs
Zdroj:
Grouping.cs

Seskupí prvky sekvence podle zadané funkce selektoru klíčů a vytvoří výslednou hodnotu z každé skupiny a jejího klíče.

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);

Parametry typu

TSource

Typ prvků objektu source.

TKey

Typ klíče vráceného nástrojem keySelector.

TResult

Typ výsledné hodnoty vrácené parametrem resultSelector.

Parametry

source
IEnumerable<TSource>

Objekt IEnumerable<T> , jehož prvky se mají seskupit.

keySelector
Func<TSource,TKey>

Funkce, která extrahuje klíč pro každý prvek.

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

Funkce, která vytvoří výslednou hodnotu z každé skupiny.

Návraty

IEnumerable<TResult>

Kolekce elementů typu TResult , kde každý prvek představuje projekci nad skupinou a jejím klíčem.

Výjimky

source nebo keySelectorresultSelector je null.

Příklady

Následující příklad kódu ukazuje, jak použít GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>) k seskupení prvků sekvence a promítnout sekvenci výsledků typu 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
    */
}

Poznámky

V syntaxi výrazu group by dotazu se klauzule (C#) nebo Group By Into (Visual Basic) překládá na vyvolání GroupBy.

Viz také

Platí pro

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

Zdroj:
Grouping.cs
Zdroj:
Grouping.cs
Zdroj:
Grouping.cs

Seskupí prvky sekvence podle zadané funkce selektoru klíčů a vytvoří výslednou hodnotu z každé skupiny a jejího klíče. Klíče se porovnávají pomocí zadaného porovnávače.

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);
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);

Parametry typu

TSource

Typ prvků objektu source.

TKey

Typ klíče vráceného nástrojem keySelector.

TResult

Typ výsledné hodnoty vrácené parametrem resultSelector.

Parametry

source
IEnumerable<TSource>

Objekt IEnumerable<T> , jehož prvky se mají seskupit.

keySelector
Func<TSource,TKey>

Funkce, která extrahuje klíč pro každý prvek.

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

Funkce, která vytvoří výslednou hodnotu z každé skupiny.

comparer
IEqualityComparer<TKey>

Pro IEqualityComparer<T> porovnání klíčů.

Návraty

IEnumerable<TResult>

Kolekce elementů typu TResult , kde každý prvek představuje projekci nad skupinou a jejím klíčem.

Výjimky

source nebo keySelectorresultSelector je null.

Viz také

Platí pro

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

Zdroj:
Grouping.cs
Zdroj:
Grouping.cs
Zdroj:
Grouping.cs

Seskupí prvky sekvence podle zadané funkce selektoru klíčů.

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);

Parametry typu

TSource

Typ prvků objektu source.

TKey

Typ klíče vráceného nástrojem keySelector.

Parametry

source
IEnumerable<TSource>

Objekt IEnumerable<T> , jehož prvky se mají seskupit.

keySelector
Func<TSource,TKey>

Funkce, která extrahuje klíč pro každý prvek.

Návraty

IEnumerable<IGrouping<TKey,TSource>>

V IEnumerable<IGrouping<TKey, TSource>> jazyce C# nebo IEnumerable(Of IGrouping(Of TKey, TSource)) v jazyce Visual Basic, kde každý IGrouping<TKey,TElement> objekt obsahuje sekvenci objektů a klíč.

Výjimky

source nebo keySelector je null.

Poznámky

Tato metoda se implementuje pomocí odloženého spuštění. Okamžitá návratová hodnota je objekt, který ukládá všechny informace potřebné k provedení akce. Dotaz reprezentovaný touto metodou není proveden, dokud objekt není výčet buď voláním jeho GetEnumerator metody přímo, nebo pomocí foreach v jazyce C# nebo For Each v jazyce Visual Basic.

Metoda GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) vrátí kolekci IGrouping<TKey,TElement> objektů, jeden pro každý zjištěný jedinečný klíč. Je IGrouping<TKey,TElement> objekt IEnumerable<T> , který má také klíč přidružený k jeho prvkům.

Objekty IGrouping<TKey,TElement> jsou vygenerovány v pořadí na základě pořadí prvků v source , které vytvořily první klíč každého IGrouping<TKey,TElement>. Prvky v seskupení jsou uvedeny v pořadí, v jakém jsou uvedeny v source.

Výchozí porovnávače Default rovnosti se používá k porovnání klíčů.

V syntaxi výrazu group by dotazu se klauzule (C#) nebo Group By Into (Visual Basic) překládá na vyvolání GroupBy. Další informace a příklady použití najdete v tématech klauzule group aGroup By Clause.

Viz také

Platí pro

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

Zdroj:
Grouping.cs
Zdroj:
Grouping.cs
Zdroj:
Grouping.cs

Seskupí prvky sekvence podle zadané funkce selektoru klíčů a porovná klíče pomocí zadaného porovnávače.

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);
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);

Parametry typu

TSource

Typ prvků objektu source.

TKey

Typ klíče vráceného nástrojem keySelector.

Parametry

source
IEnumerable<TSource>

Objekt IEnumerable<T> , jehož prvky se mají seskupit.

keySelector
Func<TSource,TKey>

Funkce, která extrahuje klíč pro každý prvek.

comparer
IEqualityComparer<TKey>

K IEqualityComparer<T> porovnání klíčů.

Návraty

IEnumerable<IGrouping<TKey,TSource>>

V IEnumerable<IGrouping<TKey, TSource>> jazyce C# nebo IEnumerable(Of IGrouping(Of TKey, TSource)) v jazyce Visual Basic, kde každý IGrouping<TKey,TElement> objekt obsahuje kolekci objektů a klíč.

Výjimky

source nebo keySelector je null.

Poznámky

Tato metoda se implementuje pomocí odloženého spuštění. Okamžitá návratová hodnota je objekt, který ukládá všechny informace potřebné k provedení akce. Dotaz reprezentovaný touto metodou není proveden, dokud objekt není výčet buď voláním jeho GetEnumerator metody přímo, nebo pomocí foreach v jazyce C# nebo For Each v jazyce Visual Basic.

Metoda GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) vrátí kolekci IGrouping<TKey,TElement> objektů, jeden pro každý zjištěný jedinečný klíč. Je IGrouping<TKey,TElement> objekt IEnumerable<T> , který má také klíč přidružený k jeho prvkům.

Objekty IGrouping<TKey,TElement> jsou vygenerovány v pořadí na základě pořadí prvků v source , které vytvořily první klíč každého IGrouping<TKey,TElement>. Prvky v seskupení jsou uvedeny v pořadí, v jakém jsou uvedeny v source.

Pokud comparer je null, použije se k porovnání klíčů výchozí porovnávače Default rovnosti.

Pokud jsou dva klíče považovány za stejné podle comparer, první klíč se zvolí jako klíč pro toto seskupení.

V syntaxi výrazu group by dotazu se klauzule (C#) nebo Group By Into (Visual Basic) překládá na vyvolání GroupBy. Další informace a příklady použití najdete v tématech klauzule group aGroup By Clause.

Viz také

Platí pro