Enumerable.ToLookup Metoda

Definicja

Tworzy ogólny Lookup<TKey,TElement> z IEnumerable<T> .Creates a generic Lookup<TKey,TElement> from an IEnumerable<T>.

Przeciążenia

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

Tworzy Lookup<TKey,TElement> z elementu IEnumerable<T> zgodnie z określonym selektorem kluczy i funkcjami selektora elementów.Creates a Lookup<TKey,TElement> from an IEnumerable<T> according to specified key selector and element selector functions.

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

Tworzy element a Lookup<TKey,TElement> od IEnumerable<T> zgodnie z określoną funkcją selektora kluczy, funkcją porównującą i elementem selektora elementów.Creates a Lookup<TKey,TElement> from an IEnumerable<T> according to a specified key selector function, a comparer and an element selector function.

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

Tworzy element a Lookup<TKey,TElement> od IEnumerable<T> zgodnie z określoną funkcją selektora kluczy.Creates a Lookup<TKey,TElement> from an IEnumerable<T> according to a specified key selector function.

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

Tworzy element a na Lookup<TKey,TElement> podstawie IEnumerable<T> zgodnie z określoną funkcją selektora klucza i elementem porównującym klucz.Creates a Lookup<TKey,TElement> from an IEnumerable<T> according to a specified key selector function and key comparer.

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

Tworzy Lookup<TKey,TElement> z elementu IEnumerable<T> zgodnie z określonym selektorem kluczy i funkcjami selektora elementów.Creates a Lookup<TKey,TElement> from an IEnumerable<T> according to specified key selector and element selector functions.

public:
generic <typename TSource, typename TKey, typename TElement>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::ILookup<TKey, TElement> ^ ToLookup(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector, Func<TSource, TElement> ^ elementSelector);
public static System.Linq.ILookup<TKey,TElement> ToLookup<TSource,TKey,TElement> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, Func<TSource,TElement> elementSelector);
static member ToLookup : seq<'Source> * Func<'Source, 'Key> * Func<'Source, 'Element> -> System.Linq.ILookup<'Key, 'Element>
<Extension()>
Public Function ToLookup(Of TSource, TKey, TElement) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), elementSelector As Func(Of TSource, TElement)) As ILookup(Of TKey, TElement)

Parametry typu

TSource

Typ elementów source .The type of the elements of source.

TKey

Typ klucza zwracanego przez keySelector .The type of the key returned by keySelector.

TElement

Typ wartości zwracanej przez elementSelector .The type of the value returned by elementSelector.

Parametry

source
IEnumerable<TSource>

W IEnumerable<T> celu utworzenia elementu Lookup<TKey,TElement> z.The IEnumerable<T> to create a Lookup<TKey,TElement> from.

keySelector
Func<TSource,TKey>

Funkcja wyodrębniania klucza z każdego elementu.A function to extract a key from each element.

elementSelector
Func<TSource,TElement>

Funkcja transformacji do uzyskiwania wartości wyniku elementu z każdego z elementu.A transform function to produce a result element value from each element.

Zwraca

ILookup<TKey,TElement>

A Lookup<TKey,TElement> , który zawiera wartości typu TElement wybrane z sekwencji wejściowej.A Lookup<TKey,TElement> that contains values of type TElement selected from the input sequence.

Wyjątki

source or keySelector lub elementSelector is null .source or keySelector or elementSelector is null.

Przykłady

Poniższy przykład kodu demonstruje, jak używać ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) do tworzenia Lookup<TKey,TElement> przy użyciu funkcji selektora kluczy i funkcji selektora elementów.The following code example demonstrates how to use ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) to create a Lookup<TKey,TElement> by using a key selector function and an element selector function.

class Package
{
    public string Company { get; set; }
    public double Weight { get; set; }
    public long TrackingNumber { get; set; }
}

public static void ToLookupEx1()
{
    // Create a list of Packages.
    List<Package> packages =
        new List<Package>
            { new Package { Company = "Coho Vineyard",
                  Weight = 25.2, TrackingNumber = 89453312L },
              new Package { Company = "Lucerne Publishing",
                  Weight = 18.7, TrackingNumber = 89112755L },
              new Package { Company = "Wingtip Toys",
                  Weight = 6.0, TrackingNumber = 299456122L },
              new Package { Company = "Contoso Pharmaceuticals",
                  Weight = 9.3, TrackingNumber = 670053128L },
              new Package { Company = "Wide World Importers",
                  Weight = 33.8, TrackingNumber = 4665518773L } };

    // Create a Lookup to organize the packages.
    // Use the first character of Company as the key value.
    // Select Company appended to TrackingNumber
    // as the element values of the Lookup.
    ILookup<char, string> lookup =
        packages
        .ToLookup(p => Convert.ToChar(p.Company.Substring(0, 1)),
                  p => p.Company + " " + p.TrackingNumber);

    // Iterate through each IGrouping in the Lookup.
    foreach (IGrouping<char, string> packageGroup in lookup)
    {
        // Print the key value of the IGrouping.
        Console.WriteLine(packageGroup.Key);
        // Iterate through each value in the
        // IGrouping and print its value.
        foreach (string str in packageGroup)
            Console.WriteLine("    {0}", str);
    }
}

/*
 This code produces the following output:

 C
     Coho Vineyard 89453312
     Contoso Pharmaceuticals 670053128
 L
     Lucerne Publishing 89112755
 W
     Wingtip Toys 299456122
     Wide World Importers 4665518773
*/
Structure Package
    Public Company As String
    Public Weight As Double
    Public TrackingNumber As Long
End Structure

Sub ToLookupEx1()
    ' Create a list of Packages.
    Dim packages As New List(Of Package)(New Package() _
     {New Package With
      {.Company = "Coho Vineyard", .Weight = 25.2, .TrackingNumber = 89453312L},
      New Package With
      {.Company = "Lucerne Publishing", .Weight = 18.7, .TrackingNumber = 89112755L},
      New Package With
      {.Company = "Wingtip Toys", .Weight = 6.0, .TrackingNumber = 299456122L},
      New Package With
      {.Company = "Contoso Pharmaceuticals", .Weight = 9.3, .TrackingNumber = 670053128L},
      New Package With
      {.Company = "Wide World Importers", .Weight = 33.8, .TrackingNumber = 4665518773L}})

    ' Create a Lookup to organize the packages. 
    ' Use the first character of Company as the key value.
    ' Select Company appended to TrackingNumber 
    ' as the element values of the Lookup.
    Dim lookup As ILookup(Of Char, String) =
    packages.ToLookup(Function(p) _
                          Convert.ToChar(p.Company.Substring(0, 1)),
                      Function(p) _
                          p.Company & " " & p.TrackingNumber)

    Dim output As New System.Text.StringBuilder

    ' Iterate through each IGrouping in the Lookup.
    For Each packageGroup As IGrouping(Of Char, String) In lookup
        ' Print the key value of the IGrouping.
        output.AppendLine(packageGroup.Key)
        ' Iterate through each value in the IGrouping and print its value.
        For Each str As String In packageGroup
            output.AppendLine("   " & str)
        Next
    Next

    ' Select a group of packages by indexing directly into the Lookup.
    Dim cgroup As IEnumerable(Of String) = lookup("C"c)

    output.AppendLine(vbCrLf & "Packages from Company names that start with 'C':")
    For Each str As String In cgroup
        output.AppendLine(str)
    Next

    ' Display the output.
    Console.WriteLine(output.ToString())
End Sub

' This code produces the following output:
'
' C
'    Coho Vineyard 89453312
'    Contoso Pharmaceuticals 670053128
' L
'    Lucerne Publishing 89112755
' W
'    Wingtip Toys 299456122
'    Wide World Importers 4665518773
'
' Packages from Company names that start with 'C':
' Coho Vineyard 89453312
' Contoso Pharmaceuticals 670053128

Uwagi

ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)Metoda zwraca, czyli Lookup<TKey,TElement> słownik jeden do wielu, który mapuje klucze na kolekcje wartości.The ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) method returns a Lookup<TKey,TElement>, a one-to-many dictionary that maps keys to collections of values. Lookup<TKey,TElement>Różni się od elementu Dictionary<TKey,TValue> , który wykonuje mapowanie jeden do jednego kluczy do pojedynczych wartości.A Lookup<TKey,TElement> differs from a Dictionary<TKey,TValue>, which performs a one-to-one mapping of keys to single values.

Domyślna funkcja porównująca równość Default jest używana do porównywania kluczy.The default equality comparer Default is used to compare keys.

Dotyczy

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

Tworzy element a Lookup<TKey,TElement> od IEnumerable<T> zgodnie z określoną funkcją selektora kluczy, funkcją porównującą i elementem selektora elementów.Creates a Lookup<TKey,TElement> from an IEnumerable<T> according to a specified key selector function, a comparer and an element selector function.

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

Parametry typu

TSource

Typ elementów source .The type of the elements of source.

TKey

Typ klucza zwracanego przez keySelector .The type of the key returned by keySelector.

TElement

Typ wartości zwracanej przez elementSelector .The type of the value returned by elementSelector.

Parametry

source
IEnumerable<TSource>

W IEnumerable<T> celu utworzenia elementu Lookup<TKey,TElement> z.The IEnumerable<T> to create a Lookup<TKey,TElement> from.

keySelector
Func<TSource,TKey>

Funkcja wyodrębniania klucza z każdego elementu.A function to extract a key from each element.

elementSelector
Func<TSource,TElement>

Funkcja transformacji do uzyskiwania wartości wyniku elementu z każdego z elementu.A transform function to produce a result element value from each element.

comparer
IEqualityComparer<TKey>

IEqualityComparer<T>Do porównywania kluczy.An IEqualityComparer<T> to compare keys.

Zwraca

ILookup<TKey,TElement>

A Lookup<TKey,TElement> , który zawiera wartości typu TElement wybrane z sekwencji wejściowej.A Lookup<TKey,TElement> that contains values of type TElement selected from the input sequence.

Wyjątki

source or keySelector lub elementSelector is null .source or keySelector or elementSelector is null.

Uwagi

ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)Metoda zwraca, czyli Lookup<TKey,TElement> słownik jeden do wielu, który mapuje klucze na kolekcje wartości.The ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) method returns a Lookup<TKey,TElement>, a one-to-many dictionary that maps keys to collections of values. Lookup<TKey,TElement>Różni się od elementu Dictionary<TKey,TValue> , który wykonuje mapowanie jeden do jednego kluczy do pojedynczych wartości.A Lookup<TKey,TElement> differs from a Dictionary<TKey,TValue>, which performs a one-to-one mapping of keys to single values.

Jeśli comparer jest null , domyślną funkcję porównującą równość Default używa się do porównywania kluczy.If comparer is null, the default equality comparer Default is used to compare keys.

Dotyczy

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

Tworzy element a Lookup<TKey,TElement> od IEnumerable<T> zgodnie z określoną funkcją selektora kluczy.Creates a Lookup<TKey,TElement> from an IEnumerable<T> according to a specified key selector function.

public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::ILookup<TKey, TSource> ^ ToLookup(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector);
public static System.Linq.ILookup<TKey,TSource> ToLookup<TSource,TKey> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector);
static member ToLookup : seq<'Source> * Func<'Source, 'Key> -> System.Linq.ILookup<'Key, 'Source>
<Extension()>
Public Function ToLookup(Of TSource, TKey) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey)) As ILookup(Of TKey, TSource)

Parametry typu

TSource

Typ elementów source .The type of the elements of source.

TKey

Typ klucza zwracanego przez keySelector .The type of the key returned by keySelector.

Parametry

source
IEnumerable<TSource>

W IEnumerable<T> celu utworzenia elementu Lookup<TKey,TElement> z.The IEnumerable<T> to create a Lookup<TKey,TElement> from.

keySelector
Func<TSource,TKey>

Funkcja wyodrębniania klucza z każdego elementu.A function to extract a key from each element.

Zwraca

ILookup<TKey,TSource>

Zawierający Lookup<TKey,TElement> klucze i wartości.A Lookup<TKey,TElement> that contains keys and values. Wartości w każdej grupie są w tej samej kolejności, w jakiej znajduje się w source .The values within each group are in the same order as in source.

Wyjątki

source lub keySelector jest null .source or keySelector is null.

Uwagi

ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)Metoda zwraca, czyli Lookup<TKey,TElement> słownik jeden do wielu, który mapuje klucze na kolekcje wartości.The ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) method returns a Lookup<TKey,TElement>, a one-to-many dictionary that maps keys to collections of values. Lookup<TKey,TElement>Różni się od elementu Dictionary<TKey,TValue> , który wykonuje mapowanie jeden do jednego kluczy do pojedynczych wartości.A Lookup<TKey,TElement> differs from a Dictionary<TKey,TValue>, which performs a one-to-one mapping of keys to single values.

Domyślna funkcja porównująca równość Default jest używana do porównywania kluczy.The default equality comparer Default is used to compare keys.

Dotyczy

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

Tworzy element a na Lookup<TKey,TElement> podstawie IEnumerable<T> zgodnie z określoną funkcją selektora klucza i elementem porównującym klucz.Creates a Lookup<TKey,TElement> from an IEnumerable<T> according to a specified key selector function and key comparer.

public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::ILookup<TKey, TSource> ^ ToLookup(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
public static System.Linq.ILookup<TKey,TSource> ToLookup<TSource,TKey> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, System.Collections.Generic.IEqualityComparer<TKey> comparer);
public static System.Linq.ILookup<TKey,TSource> ToLookup<TSource,TKey> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, System.Collections.Generic.IEqualityComparer<TKey>? comparer);
static member ToLookup : seq<'Source> * Func<'Source, 'Key> * System.Collections.Generic.IEqualityComparer<'Key> -> System.Linq.ILookup<'Key, 'Source>
<Extension()>
Public Function ToLookup(Of TSource, TKey) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), comparer As IEqualityComparer(Of TKey)) As ILookup(Of TKey, TSource)

Parametry typu

TSource

Typ elementów source .The type of the elements of source.

TKey

Typ klucza zwracanego przez keySelector .The type of the key returned by keySelector.

Parametry

source
IEnumerable<TSource>

W IEnumerable<T> celu utworzenia elementu Lookup<TKey,TElement> z.The IEnumerable<T> to create a Lookup<TKey,TElement> from.

keySelector
Func<TSource,TKey>

Funkcja wyodrębniania klucza z każdego elementu.A function to extract a key from each element.

comparer
IEqualityComparer<TKey>

IEqualityComparer<T>Do porównywania kluczy.An IEqualityComparer<T> to compare keys.

Zwraca

ILookup<TKey,TSource>

Zawierający Lookup<TKey,TElement> klucze i wartości.A Lookup<TKey,TElement> that contains keys and values. Wartości w każdej grupie są w tej samej kolejności, w jakiej znajduje się w source .The values within each group are in the same order as in source.

Wyjątki

source lub keySelector jest null .source or keySelector is null.

Uwagi

ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)Metoda zwraca, czyli Lookup<TKey,TElement> słownik jeden do wielu, który mapuje klucze na kolekcje wartości.The ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) method returns a Lookup<TKey,TElement>, a one-to-many dictionary that maps keys to collections of values. A Lookup<TKey,TElement> jest różna do Dictionary<TKey,TValue> , który wykonuje mapowanie jeden do jednego kluczy do pojedynczych wartości.A Lookup<TKey,TElement> is different to a Dictionary<TKey,TValue>, which performs a one-to-one mapping of keys to single values.

Jeśli comparer jest null , domyślną funkcję porównującą równość Default używa się do porównywania kluczy.If comparer is null, the default equality comparer Default is used to compare keys.

Dotyczy