다음을 통해 공유


Enumerable.ToLookup 메서드

정의

Lookup<TKey,TElement>을 사용하여 제네릭 IEnumerable<T>을 만듭니다.

오버로드

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

지정된 키 선택기와 요소 선택기 함수에 따라 Lookup<TKey,TElement>을 사용하여 IEnumerable<T>를 만듭니다.

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

지정된 키 선택기 함수, 비교자 및 요소 선택기 함수에 따라 Lookup<TKey,TElement>을 사용하여 IEnumerable<T>을 만듭니다.

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

지정된 키 선택기 함수와 키 비교자에 따라 Lookup<TKey,TElement>을 사용하여 IEnumerable<T>를 만듭니다.

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

지정된 키 선택기 함수에 따라 Lookup<TKey,TElement>을 사용하여 IEnumerable<T>를 만듭니다.

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

Source:
Lookup.cs
Source:
Lookup.cs
Source:
Lookup.cs

지정된 키 선택기와 요소 선택기 함수에 따라 Lookup<TKey,TElement>을 사용하여 IEnumerable<T>를 만듭니다.

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)

형식 매개 변수

TSource

source 요소의 형식입니다.

TKey

keySelector에서 반환하는 키의 형식입니다.

TElement

elementSelector에서 반환하는 값의 형식입니다.

매개 변수

source
IEnumerable<TSource>

IEnumerable<T>을 만드는 데 사용할 Lookup<TKey,TElement>입니다.

keySelector
Func<TSource,TKey>

각 요소에서 키를 추출하는 함수입니다.

elementSelector
Func<TSource,TElement>

각 요소를 사용하여 결과 요소 값을 생성할 변형 함수입니다.

반환

입력 시퀀스에서 선택한 TElement 형식 값이 포함된 Lookup<TKey,TElement>입니다.

예외

source, keySelector 또는 elementSelectornull인 경우

예제

다음 코드 예제에서는 키 선택기 함수 및 요소 선택기 함수를 사용하여 를 만드는 Lookup<TKey,TElement> 방법을 ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) 보여 줍니다.

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 => p.Company[0],
                  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

설명

메서드는 ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) 키를 값 컬렉션에 매핑하는 일대다 사전인 를 반환 Lookup<TKey,TElement>합니다. 은 Lookup<TKey,TElement> 단일 값에 Dictionary<TKey,TValue>대한 키의 일대일 매핑을 수행하는 과 다릅니다.

기본 같음 비교자는 Default 키를 비교하는 데 사용됩니다.

적용 대상

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

Source:
Lookup.cs
Source:
Lookup.cs
Source:
Lookup.cs

지정된 키 선택기 함수, 비교자 및 요소 선택기 함수에 따라 Lookup<TKey,TElement>을 사용하여 IEnumerable<T>을 만듭니다.

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)

형식 매개 변수

TSource

source 요소의 형식입니다.

TKey

keySelector에서 반환하는 키의 형식입니다.

TElement

elementSelector에서 반환하는 값의 형식입니다.

매개 변수

source
IEnumerable<TSource>

IEnumerable<T>을 만드는 데 사용할 Lookup<TKey,TElement>입니다.

keySelector
Func<TSource,TKey>

각 요소에서 키를 추출하는 함수입니다.

elementSelector
Func<TSource,TElement>

각 요소를 사용하여 결과 요소 값을 생성할 변형 함수입니다.

comparer
IEqualityComparer<TKey>

키를 비교할 IEqualityComparer<T>입니다.

반환

입력 시퀀스에서 선택한 TElement 형식 값이 포함된 Lookup<TKey,TElement>입니다.

예외

source, keySelector 또는 elementSelectornull인 경우

설명

메서드는 ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) 키를 값 컬렉션에 매핑하는 일대다 사전인 를 반환 Lookup<TKey,TElement>합니다. 은 Lookup<TKey,TElement> 단일 값에 Dictionary<TKey,TValue>대한 키의 일대일 매핑을 수행하는 과 다릅니다.

가 이nullcomparer 기본 같음 비교자를 Default 사용하여 키를 비교합니다.

적용 대상

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

Source:
Lookup.cs
Source:
Lookup.cs
Source:
Lookup.cs

지정된 키 선택기 함수와 키 비교자에 따라 Lookup<TKey,TElement>을 사용하여 IEnumerable<T>를 만듭니다.

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)

형식 매개 변수

TSource

source 요소의 형식입니다.

TKey

keySelector에서 반환하는 키의 형식입니다.

매개 변수

source
IEnumerable<TSource>

IEnumerable<T>을 만드는 데 사용할 Lookup<TKey,TElement>입니다.

keySelector
Func<TSource,TKey>

각 요소에서 키를 추출하는 함수입니다.

comparer
IEqualityComparer<TKey>

키를 비교할 IEqualityComparer<T>입니다.

반환

ILookup<TKey,TSource>

키와 값이 들어 있는 Lookup<TKey,TElement>입니다. 각 그룹의 값은 source의 순서와 동일합니다.

예외

source 또는 keySelectornull인 경우

설명

메서드는 ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) 키를 값 컬렉션에 매핑하는 일대다 사전인 를 반환 Lookup<TKey,TElement>합니다. Lookup<TKey,TElement> 은 단일 값에 Dictionary<TKey,TValue>대한 키의 일대일 매핑을 수행하는 입니다.

가 이nullcomparer 기본 같음 비교자를 Default 사용하여 키를 비교합니다.

적용 대상

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

Source:
Lookup.cs
Source:
Lookup.cs
Source:
Lookup.cs

지정된 키 선택기 함수에 따라 Lookup<TKey,TElement>을 사용하여 IEnumerable<T>를 만듭니다.

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)

형식 매개 변수

TSource

source 요소의 형식입니다.

TKey

keySelector에서 반환하는 키의 형식입니다.

매개 변수

source
IEnumerable<TSource>

IEnumerable<T>을 만드는 데 사용할 Lookup<TKey,TElement>입니다.

keySelector
Func<TSource,TKey>

각 요소에서 키를 추출하는 함수입니다.

반환

ILookup<TKey,TSource>

키와 값이 들어 있는 Lookup<TKey,TElement>입니다. 각 그룹의 값은 source의 순서와 동일합니다.

예외

source 또는 keySelectornull인 경우

설명

메서드는 ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) 키를 값 컬렉션에 매핑하는 일대다 사전인 를 반환 Lookup<TKey,TElement>합니다. 은 Lookup<TKey,TElement> 단일 값에 Dictionary<TKey,TValue>대한 키의 일대일 매핑을 수행하는 과 다릅니다.

기본 같음 비교자는 Default 키를 비교하는 데 사용됩니다.

적용 대상