Queryable.GroupBy 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
시퀀스의 요소를 그룹화합니다.
오버로드
GroupBy<TSource,TKey,TElement,TResult>(IQueryable<TSource>, Expression<Func<TSource, TKey>>, Expression<Func<TSource,TElement>>, Expression<Func<TKey, IEnumerable<TElement>,TResult>>, IEqualityComparer<TKey>)
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
지정된 키 누적기 함수에 따라 시퀀스의 요소를 그룹화하고 각 그룹의 결과 값과 해당 키를 만듭니다. 키는 지정된 비교자를 통해 비교되고 각 그룹의 요소는 지정된 함수를 통해 투영됩니다.
public:
generic <typename TSource, typename TKey, typename TElement, typename TResult>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable<TResult> ^ GroupBy(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector, System::Linq::Expressions::Expression<Func<TSource, TElement> ^> ^ elementSelector, System::Linq::Expressions::Expression<Func<TKey, System::Collections::Generic::IEnumerable<TElement> ^, TResult> ^> ^ resultSelector, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
public static System.Linq.IQueryable<TResult> GroupBy<TSource,TKey,TElement,TResult> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Linq.Expressions.Expression<Func<TSource,TElement>> elementSelector, System.Linq.Expressions.Expression<Func<TKey,System.Collections.Generic.IEnumerable<TElement>,TResult>> resultSelector, System.Collections.Generic.IEqualityComparer<TKey> comparer);
public static System.Linq.IQueryable<TResult> GroupBy<TSource,TKey,TElement,TResult> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Linq.Expressions.Expression<Func<TSource,TElement>> elementSelector, System.Linq.Expressions.Expression<Func<TKey,System.Collections.Generic.IEnumerable<TElement>,TResult>> resultSelector, System.Collections.Generic.IEqualityComparer<TKey>? comparer);
static member GroupBy : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * System.Linq.Expressions.Expression<Func<'Source, 'Element>> * System.Linq.Expressions.Expression<Func<'Key, seq<'Element>, 'Result>> * System.Collections.Generic.IEqualityComparer<'Key> -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function GroupBy(Of TSource, TKey, TElement, TResult) (source As IQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey)), elementSelector As Expression(Of Func(Of TSource, TElement)), resultSelector As Expression(Of Func(Of TKey, IEnumerable(Of TElement), TResult)), comparer As IEqualityComparer(Of TKey)) As IQueryable(Of TResult)
형식 매개 변수
- TSource
source
요소의 형식입니다.
- TKey
keySelector
에 지정된 함수가 반환하는 키 형식입니다.
- TElement
각 IGrouping<TKey,TElement>에 있는 요소의 형식입니다.
- TResult
resultSelector
에서 반환하는 결과 값의 형식입니다.
매개 변수
- source
- IQueryable<TSource>
요소를 그룹화할 IQueryable<T>입니다.
- keySelector
- Expression<Func<TSource,TKey>>
각 요소에 대해 키를 추출하는 함수입니다.
- elementSelector
- Expression<Func<TSource,TElement>>
각 소스 요소를 IGrouping<TKey,TElement>의 요소에 매핑하는 함수입니다.
- resultSelector
- Expression<Func<TKey,IEnumerable<TElement>,TResult>>
각 그룹의 결과 값을 만드는 함수입니다.
- comparer
- IEqualityComparer<TKey>
키를 비교할 IEqualityComparer<T>입니다.
반환
T:System.Linq.IQueryable`1
의 형식 인수 TResult
가 있고 각 요소가 그룹 및 해당 키에 대한 프로젝션을 나타내는 입니다.
예외
source
, keySelector
, elementSelector
, resultSelector
또는 comparer
가 null
인 경우
설명
이 메서드에는 형식 인수가 형식 중 하나인 형식 Expression<TDelegate> 의 매개 변수가 Func<T,TResult> 하나 이상 있습니다. 이러한 매개 변수의 경우 람다 식을 전달할 수 있으며 에 컴파일됩니다 Expression<TDelegate>.
메서드는 GroupBy<TSource,TKey,TElement,TResult>(IQueryable<TSource>, Expression<Func<TSource,
TKey>>, Expression<Func<TSource,TElement>>, Expression<Func<TKey,
IEnumerable<TElement>,TResult>>, IEqualityComparer<TKey>)MethodCallExpression 생성된 제네릭 메서드로 자신을 호출 GroupBy<TSource,TKey,TElement,TResult>(IQueryable<TSource>, Expression<Func<TSource,
TKey>>, Expression<Func<TSource,TElement>>, Expression<Func<TKey,
IEnumerable<TElement>,TResult>>, IEqualityComparer<TKey>) 하는 를 나타내는 을 생성합니다. 그런 다음 을 MethodCallExpression 매개 변수의 CreateQuery<TElement>(Expression) 속성으로 나타내는 의 IQueryProvider 메서드에 Providersource
전달합니다.
호출 GroupBy<TSource,TKey,TElement,TResult>(IQueryable<TSource>, Expression<Func<TSource,
TKey>>, Expression<Func<TSource,TElement>>, Expression<Func<TKey,
IEnumerable<TElement>,TResult>>, IEqualityComparer<TKey>) 을 나타내는 식 트리를 실행한 결과로 발생하는 쿼리 동작은 매개 변수 형식의 source
구현에 따라 달라집니다. 예상 동작은 각 요소에서 를 호출하여 얻은 키 값별로 의 source
요소를 그룹화한다는 keySelector
것입니다. comparer
매개 변수는 키 값을 비교하는 데 사용됩니다. 매개 변수는 elementSelector
각 그룹의 요소를 프로젝션하는 데 사용되며 resultSelector
매개 변수는 각 그룹과 해당 키에서 결과 값을 가져오는 데 사용됩니다.
적용 대상
GroupBy<TSource,TKey,TElement,TResult>(IQueryable<TSource>, Expression<Func<TSource, TKey>>, Expression<Func<TSource,TElement>>, Expression<Func<TKey, IEnumerable<TElement>,TResult>>)
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
지정된 키 누적기 함수에 따라 시퀀스의 요소를 그룹화하고 각 그룹의 결과 값과 해당 키를 만듭니다. 각 그룹의 요소는 지정된 함수를 통해 투영됩니다.
public:
generic <typename TSource, typename TKey, typename TElement, typename TResult>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable<TResult> ^ GroupBy(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector, System::Linq::Expressions::Expression<Func<TSource, TElement> ^> ^ elementSelector, System::Linq::Expressions::Expression<Func<TKey, System::Collections::Generic::IEnumerable<TElement> ^, TResult> ^> ^ resultSelector);
public static System.Linq.IQueryable<TResult> GroupBy<TSource,TKey,TElement,TResult> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Linq.Expressions.Expression<Func<TSource,TElement>> elementSelector, System.Linq.Expressions.Expression<Func<TKey,System.Collections.Generic.IEnumerable<TElement>,TResult>> resultSelector);
static member GroupBy : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * System.Linq.Expressions.Expression<Func<'Source, 'Element>> * System.Linq.Expressions.Expression<Func<'Key, seq<'Element>, 'Result>> -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function GroupBy(Of TSource, TKey, TElement, TResult) (source As IQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey)), elementSelector As Expression(Of Func(Of TSource, TElement)), resultSelector As Expression(Of Func(Of TKey, IEnumerable(Of TElement), TResult))) As IQueryable(Of TResult)
형식 매개 변수
- TSource
source
요소의 형식입니다.
- TKey
keySelector
에 지정된 함수가 반환하는 키 형식입니다.
- TElement
각 IGrouping<TKey,TElement>에 있는 요소의 형식입니다.
- TResult
resultSelector
에서 반환하는 결과 값의 형식입니다.
매개 변수
- source
- IQueryable<TSource>
요소를 그룹화할 IQueryable<T>입니다.
- keySelector
- Expression<Func<TSource,TKey>>
각 요소에 대해 키를 추출하는 함수입니다.
- elementSelector
- Expression<Func<TSource,TElement>>
각 소스 요소를 IGrouping<TKey,TElement>의 요소에 매핑하는 함수입니다.
- resultSelector
- Expression<Func<TKey,IEnumerable<TElement>,TResult>>
각 그룹의 결과 값을 만드는 함수입니다.
반환
T:System.Linq.IQueryable`1
의 형식 인수 TResult
가 있고 각 요소가 그룹 및 해당 키에 대한 프로젝션을 나타내는 입니다.
예외
source
, keySelector
, elementSelector
또는 resultSelector
가 null
인 경우
예제
다음 코드 예제에서는 를 사용하여 GroupBy<TSource,TKey,TElement,TResult>(IQueryable<TSource>, Expression<Func<TSource,
TKey>>, Expression<Func<TSource,TElement>>, Expression<Func<TKey,
IEnumerable<TElement>,TResult>>) 시퀀스의 요소를 그룹화하고 형식 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.AsQueryable().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
Shared 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 valuesby 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.AsQueryable().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 with this age: " & result.Count)
output.AppendLine("Minimum age: " & result.Min)
output.AppendLine("Maximum age: " & result.Max)
Next
' Display the output.
MsgBox(output.ToString())
' This code produces the following output:
' Age group: 8
' Number of pets with this age: 1
' Minimum age: 8.3
' Maximum age: 8.3
' Age group: 4
' Number of pets with this age: 2
' Minimum age: 4.3
' Maximum age: 4.9
' Age group: 1
' Number of pets with this age: 1
' Minimum age: 1.5
' Maximum age: 1.5
End Sub
설명
이 메서드에는 형식 인수가 형식 중 하나인 형식 Expression<TDelegate> 의 매개 변수가 Func<T,TResult> 하나 이상 있습니다. 이러한 매개 변수의 경우 람다 식을 전달할 수 있으며 에 컴파일됩니다 Expression<TDelegate>.
메서드는 GroupBy<TSource,TKey,TElement,TResult>(IQueryable<TSource>, Expression<Func<TSource,
TKey>>, Expression<Func<TSource,TElement>>, Expression<Func<TKey,
IEnumerable<TElement>,TResult>>)MethodCallExpression 생성된 제네릭 메서드로 자신을 호출 GroupBy<TSource,TKey,TElement,TResult>(IQueryable<TSource>, Expression<Func<TSource,
TKey>>, Expression<Func<TSource,TElement>>, Expression<Func<TKey,
IEnumerable<TElement>,TResult>>) 하는 를 나타내는 을 생성합니다. 그런 다음 을 MethodCallExpression 매개 변수의 CreateQuery<TElement>(Expression) 속성으로 나타내는 의 IQueryProvider 메서드에 Providersource
전달합니다.
호출 GroupBy<TSource,TKey,TElement,TResult>(IQueryable<TSource>, Expression<Func<TSource,
TKey>>, Expression<Func<TSource,TElement>>, Expression<Func<TKey,
IEnumerable<TElement>,TResult>>) 을 나타내는 식 트리를 실행한 결과로 발생하는 쿼리 동작은 매개 변수 형식의 source
구현에 따라 달라집니다. 예상 동작은 각 요소에서 를 호출하여 얻은 키 값별로 의 source
요소를 그룹화한다는 keySelector
것입니다. 매개 변수는 elementSelector
각 그룹의 요소를 프로젝션하는 데 사용되며 resultSelector
매개 변수는 각 그룹과 해당 키에서 결과 값을 가져오는 데 사용됩니다.
적용 대상
GroupBy<TSource,TKey,TElement>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, Expression<Func<TSource,TElement>>)
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
지정된 키 선택기 함수에 따라 시퀀스의 요소를 그룹화하고 지정된 함수를 사용하여 각 그룹의 요소를 투영합니다.
public:
generic <typename TSource, typename TKey, typename TElement>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable<System::Linq::IGrouping<TKey, TElement> ^> ^ GroupBy(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector, System::Linq::Expressions::Expression<Func<TSource, TElement> ^> ^ elementSelector);
public static System.Linq.IQueryable<System.Linq.IGrouping<TKey,TElement>> GroupBy<TSource,TKey,TElement> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Linq.Expressions.Expression<Func<TSource,TElement>> elementSelector);
static member GroupBy : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * System.Linq.Expressions.Expression<Func<'Source, 'Element>> -> System.Linq.IQueryable<System.Linq.IGrouping<'Key, 'Element>>
<Extension()>
Public Function GroupBy(Of TSource, TKey, TElement) (source As IQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey)), elementSelector As Expression(Of Func(Of TSource, TElement))) As IQueryable(Of IGrouping(Of TKey, TElement))
형식 매개 변수
- TSource
source
요소의 형식입니다.
- TKey
keySelector
에 지정된 함수가 반환하는 키 형식입니다.
- TElement
각 IGrouping<TKey,TElement>에 있는 요소의 형식입니다.
매개 변수
- source
- IQueryable<TSource>
요소를 그룹화할 IQueryable<T>입니다.
- keySelector
- Expression<Func<TSource,TKey>>
각 요소에 대해 키를 추출하는 함수입니다.
- elementSelector
- Expression<Func<TSource,TElement>>
각 소스 요소를 IGrouping<TKey,TElement>의 요소에 매핑하는 함수입니다.
반환
IQueryable<IGrouping<TKey, TElement>>
C# 또는 IQueryable(Of IGrouping(Of TKey, TElement))
Visual Basic의 입니다. 여기서 각각 IGrouping<TKey,TElement> 에는 형식 TElement
및 키의 개체 시퀀스가 포함됩니다.
예외
source
, keySelector
또는 elementSelector
가 null
인 경우
예제
다음 코드 예제에서는 를 사용하여 GroupBy<TSource,TKey,TElement>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, Expression<Func<TSource,TElement>>) 시퀀스의 요소를 그룹화하는 방법을 보여 줍니다.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void GroupByEx2()
{
// Create a list of Pet objects.
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 Pet.Age as the key.
// Use Pet.Name as the value for each entry.
IEnumerable<IGrouping<int, string>> query =
pets.AsQueryable().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
Shared Sub GroupByEx2()
' 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 Pet.Age as the key.
' Use Pet.Name as the value for each entry.
Dim query As IEnumerable(Of IGrouping(Of Integer, String)) = _
pets.AsQueryable().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(String.Format(" {0}", name))
Next
Next
' Display the output.
MsgBox(output.ToString())
End Sub
' This code produces the following output:
'
' 8
' Barley
' 4
' Boots
' Daisy
' 1
' Whiskers
설명
이 메서드에는 형식 인수가 형식 중 하나인 형식 Expression<TDelegate> 의 매개 변수가 Func<T,TResult> 하나 이상 있습니다. 이러한 매개 변수의 경우 람다 식을 전달할 수 있으며 에 컴파일됩니다 Expression<TDelegate>.
메서드는 GroupBy<TSource,TKey,TElement>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, Expression<Func<TSource,TElement>>)MethodCallExpression 생성된 제네릭 메서드로 자신을 호출 GroupBy<TSource,TKey,TElement>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, Expression<Func<TSource,TElement>>) 하는 를 나타내는 을 생성합니다. 그런 다음 을 MethodCallExpression 매개 변수의 CreateQuery<TElement>(Expression) 속성으로 나타내는 의 IQueryProvider 메서드에 Providersource
전달합니다.
호출 GroupBy<TSource,TKey,TElement>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, Expression<Func<TSource,TElement>>) 을 나타내는 식 트리를 실행한 결과로 발생하는 쿼리 동작은 매개 변수 형식의 source
구현에 따라 달라집니다. 예상 동작은 각 요소 source
에서 를 호출하여 가져온 키 값으로 의 요소를 그룹화한다는 keySelector
것입니다. 각 요소에서 를 호출 elementSelector
하여 결과 요소를 가져옵니다.
적용 대상
GroupBy<TSource,TKey,TElement>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, Expression<Func<TSource,TElement>>, IEqualityComparer<TKey>)
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
시퀀스의 요소를 그룹화하고 지정된 함수를 사용하여 각 그룹의 요소를 투영합니다. 키 값은 지정된 비교자를 통해 비교됩니다.
public:
generic <typename TSource, typename TKey, typename TElement>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable<System::Linq::IGrouping<TKey, TElement> ^> ^ GroupBy(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector, System::Linq::Expressions::Expression<Func<TSource, TElement> ^> ^ elementSelector, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
public static System.Linq.IQueryable<System.Linq.IGrouping<TKey,TElement>> GroupBy<TSource,TKey,TElement> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Linq.Expressions.Expression<Func<TSource,TElement>> elementSelector, System.Collections.Generic.IEqualityComparer<TKey> comparer);
public static System.Linq.IQueryable<System.Linq.IGrouping<TKey,TElement>> GroupBy<TSource,TKey,TElement> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Linq.Expressions.Expression<Func<TSource,TElement>> elementSelector, System.Collections.Generic.IEqualityComparer<TKey>? comparer);
static member GroupBy : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * System.Linq.Expressions.Expression<Func<'Source, 'Element>> * System.Collections.Generic.IEqualityComparer<'Key> -> System.Linq.IQueryable<System.Linq.IGrouping<'Key, 'Element>>
<Extension()>
Public Function GroupBy(Of TSource, TKey, TElement) (source As IQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey)), elementSelector As Expression(Of Func(Of TSource, TElement)), comparer As IEqualityComparer(Of TKey)) As IQueryable(Of IGrouping(Of TKey, TElement))
형식 매개 변수
- TSource
source
요소의 형식입니다.
- TKey
keySelector
에 지정된 함수가 반환하는 키 형식입니다.
- TElement
각 IGrouping<TKey,TElement>에 있는 요소의 형식입니다.
매개 변수
- source
- IQueryable<TSource>
요소를 그룹화할 IQueryable<T>입니다.
- keySelector
- Expression<Func<TSource,TKey>>
각 요소에 대해 키를 추출하는 함수입니다.
- elementSelector
- Expression<Func<TSource,TElement>>
각 소스 요소를 IGrouping<TKey,TElement>의 요소에 매핑하는 함수입니다.
- comparer
- IEqualityComparer<TKey>
키를 비교할 IEqualityComparer<T>입니다.
반환
IQueryable<IGrouping<TKey, TElement>>
C# 또는 IQueryable(Of IGrouping(Of TKey, TElement))
Visual Basic의 입니다. 여기서 각각 IGrouping<TKey,TElement> 에는 형식 TElement
및 키의 개체 시퀀스가 포함됩니다.
예외
source
, keySelector
, elementSelector
또는 comparer
가 null
인 경우
설명
이 메서드에는 형식 인수가 형식 중 하나인 형식 Expression<TDelegate> 의 매개 변수가 Func<T,TResult> 하나 이상 있습니다. 이러한 매개 변수의 경우 람다 식을 전달할 수 있으며 에 컴파일됩니다 Expression<TDelegate>.
메서드는 GroupBy<TSource,TKey,TElement>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, Expression<Func<TSource,TElement>>, IEqualityComparer<TKey>)MethodCallExpression 생성된 제네릭 메서드로 자신을 호출 GroupBy<TSource,TKey,TElement>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, Expression<Func<TSource,TElement>>, IEqualityComparer<TKey>) 하는 를 나타내는 을 생성합니다. 그런 다음 을 MethodCallExpression 매개 변수의 CreateQuery<TElement>(Expression) 속성으로 나타내는 의 IQueryProvider 메서드에 Providersource
전달합니다.
호출 GroupBy<TSource,TKey,TElement>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, Expression<Func<TSource,TElement>>, IEqualityComparer<TKey>) 을 나타내는 식 트리를 실행한 결과로 발생하는 쿼리 동작은 매개 변수 형식의 source
구현에 따라 달라집니다. 예상 동작은 각 요소 source
에서 를 호출하여 가져온 키 값으로 의 요소를 그룹화한다는 keySelector
것입니다. 키 값은 를 사용하여 comparer
비교됩니다. elementSelector
매개 변수는 각 요소에서 호출되어 결과 요소를 가져옵니다.
적용 대상
GroupBy<TSource,TKey,TResult>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, Expression<Func<TKey,IEnumerable<TSource>,TResult>>)
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
지정된 키 누적기 함수에 따라 시퀀스의 요소를 그룹화하고 각 그룹의 결과 값과 해당 키를 만듭니다.
public:
generic <typename TSource, typename TKey, typename TResult>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable<TResult> ^ GroupBy(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector, System::Linq::Expressions::Expression<Func<TKey, System::Collections::Generic::IEnumerable<TSource> ^, TResult> ^> ^ resultSelector);
public static System.Linq.IQueryable<TResult> GroupBy<TSource,TKey,TResult> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Linq.Expressions.Expression<Func<TKey,System.Collections.Generic.IEnumerable<TSource>,TResult>> resultSelector);
static member GroupBy : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * System.Linq.Expressions.Expression<Func<'Key, seq<'Source>, 'Result>> -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function GroupBy(Of TSource, TKey, TResult) (source As IQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey)), resultSelector As Expression(Of Func(Of TKey, IEnumerable(Of TSource), TResult))) As IQueryable(Of TResult)
형식 매개 변수
- TSource
source
요소의 형식입니다.
- TKey
keySelector
에 지정된 함수가 반환하는 키 형식입니다.
- TResult
resultSelector
에서 반환하는 결과 값의 형식입니다.
매개 변수
- source
- IQueryable<TSource>
요소를 그룹화할 IQueryable<T>입니다.
- keySelector
- Expression<Func<TSource,TKey>>
각 요소에 대해 키를 추출하는 함수입니다.
- resultSelector
- Expression<Func<TKey,IEnumerable<TSource>,TResult>>
각 그룹의 결과 값을 만드는 함수입니다.
반환
T:System.Linq.IQueryable`1
의 형식 인수 TResult
가 있고 각 요소가 그룹 및 해당 키에 대한 프로젝션을 나타내는 입니다.
예외
source
, keySelector
또는 resultSelector
가 null
인 경우
예제
다음 코드 예제에서는 를 사용하여 GroupBy<TSource,TKey,TResult>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, Expression<Func<TKey,IEnumerable<TSource>,TResult>>) 시퀀스의 요소를 그룹화하고 형식 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.AsQueryable().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
Shared 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.AsQueryable().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 with this age: " & result.Count)
output.AppendLine("Minimum age: " & result.Min)
output.AppendLine("Maximum age: " & result.Max)
Next
' Display the output.
MsgBox(output.ToString())
' This code produces the following output:
' Age group: 8
' Number of pets with this age: 1
' Minimum age: 8.3
' Maximum age: 8.3
' Age group: 4
' Number of pets with this age: 2
' Minimum age: 4.3
' Maximum age: 4.9
' Age group: 1
' Number of pets with this age: 1
' Minimum age: 1.5
' Maximum age: 1.5
End Sub
설명
이 메서드에는 형식 인수가 형식 중 하나인 형식 Expression<TDelegate> 의 매개 변수가 Func<T,TResult> 하나 이상 있습니다. 이러한 매개 변수의 경우 람다 식을 전달할 수 있으며 로 컴파일됩니다 Expression<TDelegate>.
메서드는 GroupBy<TSource,TKey,TResult>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, Expression<Func<TKey,IEnumerable<TSource>,TResult>>)MethodCallExpression 생성된 제네릭 메서드로 자신을 호출 GroupBy<TSource,TKey,TResult>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, Expression<Func<TKey,IEnumerable<TSource>,TResult>>) 하는 을 생성합니다. 그런 다음 을 MethodCallExpression 매개 변수의 CreateQuery<TElement>(Expression) 속성으로 나타내는 Provider 의 IQueryProvider 메서드에 source
전달합니다.
호출 GroupBy<TSource,TKey,TResult>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, Expression<Func<TKey,IEnumerable<TSource>,TResult>>) 을 나타내는 식 트리를 실행한 결과로 발생하는 쿼리 동작은 매개 변수 형식 source
의 구현에 따라 달라집니다. 예상되는 동작은 각 요소 source
에 대해 를 호출하여 가져온 키 값으로 의 요소를 그룹화한다는 keySelector
것입니다. resultSelector
매개 변수는 각 그룹 및 해당 키에서 결과 값을 가져오는 데 사용됩니다.
적용 대상
GroupBy<TSource,TKey,TResult>(IQueryable<TSource>, Expression<Func<TSource, TKey>>, Expression<Func<TKey,IEnumerable<TSource>,TResult>>, IEqualityComparer<TKey>)
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
지정된 키 누적기 함수에 따라 시퀀스의 요소를 그룹화하고 각 그룹의 결과 값과 해당 키를 만듭니다. 키는 지정된 비교자를 통해 비교됩니다.
public:
generic <typename TSource, typename TKey, typename TResult>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable<TResult> ^ GroupBy(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector, System::Linq::Expressions::Expression<Func<TKey, System::Collections::Generic::IEnumerable<TSource> ^, TResult> ^> ^ resultSelector, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
public static System.Linq.IQueryable<TResult> GroupBy<TSource,TKey,TResult> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Linq.Expressions.Expression<Func<TKey,System.Collections.Generic.IEnumerable<TSource>,TResult>> resultSelector, System.Collections.Generic.IEqualityComparer<TKey> comparer);
public static System.Linq.IQueryable<TResult> GroupBy<TSource,TKey,TResult> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Linq.Expressions.Expression<Func<TKey,System.Collections.Generic.IEnumerable<TSource>,TResult>> resultSelector, System.Collections.Generic.IEqualityComparer<TKey>? comparer);
static member GroupBy : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * System.Linq.Expressions.Expression<Func<'Key, seq<'Source>, 'Result>> * System.Collections.Generic.IEqualityComparer<'Key> -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function GroupBy(Of TSource, TKey, TResult) (source As IQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey)), resultSelector As Expression(Of Func(Of TKey, IEnumerable(Of TSource), TResult)), comparer As IEqualityComparer(Of TKey)) As IQueryable(Of TResult)
형식 매개 변수
- TSource
source
요소의 형식입니다.
- TKey
keySelector
에 지정된 함수가 반환하는 키 형식입니다.
- TResult
resultSelector
에서 반환하는 결과 값의 형식입니다.
매개 변수
- source
- IQueryable<TSource>
요소를 그룹화할 IQueryable<T>입니다.
- keySelector
- Expression<Func<TSource,TKey>>
각 요소에 대해 키를 추출하는 함수입니다.
- resultSelector
- Expression<Func<TKey,IEnumerable<TSource>,TResult>>
각 그룹의 결과 값을 만드는 함수입니다.
- comparer
- IEqualityComparer<TKey>
키를 비교할 IEqualityComparer<T>입니다.
반환
T:System.Linq.IQueryable`1
의 형식 인수 TResult
가 있고 각 요소가 그룹 및 해당 키에 대한 프로젝션을 나타내는 입니다.
예외
source
, keySelector
, resultSelector
또는 comparer
가 null
인 경우
설명
이 메서드에는 형식 인수가 형식 중 하나인 형식 Expression<TDelegate> 의 매개 변수가 Func<T,TResult> 하나 이상 있습니다. 이러한 매개 변수의 경우 람다 식을 전달할 수 있으며 로 컴파일됩니다 Expression<TDelegate>.
메서드는 GroupBy<TSource,TKey,TResult>(IQueryable<TSource>, Expression<Func<TSource,
TKey>>, Expression<Func<TKey,IEnumerable<TSource>,TResult>>, IEqualityComparer<TKey>)MethodCallExpression 생성된 제네릭 메서드로 자신을 호출 GroupBy<TSource,TKey,TResult>(IQueryable<TSource>, Expression<Func<TSource,
TKey>>, Expression<Func<TKey,IEnumerable<TSource>,TResult>>, IEqualityComparer<TKey>) 하는 을 생성합니다. 그런 다음 을 MethodCallExpression 매개 변수의 CreateQuery<TElement>(Expression) 속성으로 나타내는 Provider 의 IQueryProvider 메서드에 source
전달합니다.
호출 GroupBy<TSource,TKey,TResult>(IQueryable<TSource>, Expression<Func<TSource,
TKey>>, Expression<Func<TKey,IEnumerable<TSource>,TResult>>, IEqualityComparer<TKey>) 을 나타내는 식 트리를 실행한 결과로 발생하는 쿼리 동작은 매개 변수 형식 source
의 구현에 따라 달라집니다. 예상되는 동작은 각 요소에 대해 를 호출하여 가져온 키 값별로 의 source
요소를 그룹화한다는 keySelector
것입니다. 매개 변수는 comparer
키를 비교하는 데 사용되며 resultSelector
매개 변수는 각 그룹과 해당 키에서 결과 값을 가져오는 데 사용됩니다.
적용 대상
GroupBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>)
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
지정된 키 선택기 함수에 따라 시퀀스의 요소를 그룹화합니다.
public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable<System::Linq::IGrouping<TKey, TSource> ^> ^ GroupBy(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector);
public static System.Linq.IQueryable<System.Linq.IGrouping<TKey,TSource>> GroupBy<TSource,TKey> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector);
static member GroupBy : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> -> System.Linq.IQueryable<System.Linq.IGrouping<'Key, 'Source>>
<Extension()>
Public Function GroupBy(Of TSource, TKey) (source As IQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey))) As IQueryable(Of IGrouping(Of TKey, TSource))
형식 매개 변수
- TSource
source
요소의 형식입니다.
- TKey
keySelector
에 지정된 함수가 반환하는 키 형식입니다.
매개 변수
- source
- IQueryable<TSource>
요소를 그룹화할 IQueryable<T>입니다.
- keySelector
- Expression<Func<TSource,TKey>>
각 요소에 대해 키를 추출하는 함수입니다.
반환
IQueryable<IGrouping<TKey, TSource>>
C# 또는 IQueryable(Of IGrouping(Of TKey, TSource))
Visual Basic의 입니다. 여기서 각 IGrouping<TKey,TElement> 개체에는 개체와 키 시퀀스가 포함됩니다.
예외
source
또는 keySelector
가 null
인 경우
예제
다음 코드 예제에서는 를 사용하여 GroupBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) 시퀀스의 요소를 그룹화하는 방법을 보여 줍니다.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void GroupByEx1()
{
// Create a list of Pet objects.
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 Pet.Age as the key.
// Use Pet.Name as the value for each entry.
var query = pets.AsQueryable().GroupBy(pet => pet.Age);
// Iterate over each IGrouping in the collection.
foreach (var ageGroup in query)
{
Console.WriteLine("Age group: {0} Number of pets: {1}", ageGroup.Key, ageGroup.Count());
}
}
/*
This code produces the following output:
Age group: 8 Number of pets: 1
Age group: 4 Number of pets: 2
Age group: 1 Number of pets: 1
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Shared 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 Pet.Age as the key.
' Use Pet.Name as the value for each entry.
Dim query = pets.AsQueryable().GroupBy(Function(pet) pet.Age)
Dim output As New System.Text.StringBuilder
' Iterate over each IGrouping in the collection.
For Each ageGroup In query
output.AppendFormat("Age group: {0} Number of pets: {1}{2}", ageGroup.Key, ageGroup.Count(), vbCrLf)
Next
' Display the output.
MsgBox(output.ToString())
End Sub
' This code produces the following output:
'
' Age group: 8 Number of pets: 1
' Age group: 4 Number of pets: 2
' Age group: 1 Number of pets: 1
설명
이 메서드에는 형식 인수가 형식 중 하나인 형식 Expression<TDelegate> 의 매개 변수가 Func<T,TResult> 하나 이상 있습니다. 이러한 매개 변수의 경우 람다 식을 전달할 수 있으며 로 컴파일됩니다 Expression<TDelegate>.
메서드는 GroupBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>)MethodCallExpression 생성된 제네릭 메서드로 자신을 호출 GroupBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) 하는 을 생성합니다. 그런 다음 을 MethodCallExpression 매개 변수의 CreateQuery<TElement>(Expression) 속성으로 나타내는 Provider 의 IQueryProvider 메서드에 source
전달합니다.
호출 GroupBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) 을 나타내는 식 트리를 실행한 결과로 발생하는 쿼리 동작은 매개 변수 형식 source
의 구현에 따라 달라집니다. 예상되는 동작은 각 요소 source
에 대해 를 호출하여 가져온 키 값으로 의 요소를 그룹화한다는 keySelector
것입니다.
적용 대상
GroupBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IEqualityComparer<TKey>)
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
지정된 키 선택기 함수에 따라 지정된 비교자로 키를 비교하여 시퀀스의 요소를 그룹화합니다.
public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable<System::Linq::IGrouping<TKey, TSource> ^> ^ GroupBy(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
public static System.Linq.IQueryable<System.Linq.IGrouping<TKey,TSource>> GroupBy<TSource,TKey> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Collections.Generic.IEqualityComparer<TKey> comparer);
public static System.Linq.IQueryable<System.Linq.IGrouping<TKey,TSource>> GroupBy<TSource,TKey> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Collections.Generic.IEqualityComparer<TKey>? comparer);
static member GroupBy : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * System.Collections.Generic.IEqualityComparer<'Key> -> System.Linq.IQueryable<System.Linq.IGrouping<'Key, 'Source>>
<Extension()>
Public Function GroupBy(Of TSource, TKey) (source As IQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey)), comparer As IEqualityComparer(Of TKey)) As IQueryable(Of IGrouping(Of TKey, TSource))
형식 매개 변수
- TSource
source
요소의 형식입니다.
- TKey
keySelector
에 지정된 함수가 반환하는 키 형식입니다.
매개 변수
- source
- IQueryable<TSource>
요소를 그룹화할 IQueryable<T>입니다.
- keySelector
- Expression<Func<TSource,TKey>>
각 요소에 대해 키를 추출하는 함수입니다.
- comparer
- IEqualityComparer<TKey>
키를 비교할 IEqualityComparer<T>입니다.
반환
IQueryable<IGrouping<TKey, TSource>>
각각 개체와 키 시퀀스가 포함된 C# 또는 IQueryable(Of IGrouping(Of TKey, TSource))
Visual Basic IGrouping<TKey,TElement> 의 입니다.
예외
source
, keySelector
또는 comparer
가 null
인 경우
설명
이 메서드에는 형식 인수가 형식 중 하나인 형식 Expression<TDelegate> 의 매개 변수가 Func<T,TResult> 하나 이상 있습니다. 이러한 매개 변수의 경우 람다 식을 전달할 수 있으며 로 컴파일됩니다 Expression<TDelegate>.
메서드는 GroupBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IEqualityComparer<TKey>)MethodCallExpression 생성된 제네릭 메서드로 자신을 호출 GroupBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IEqualityComparer<TKey>) 하는 을 생성합니다. 그런 다음 을 MethodCallExpression 매개 변수의 CreateQuery<TElement>(Expression) 속성으로 나타내는 Provider 의 IQueryProvider 메서드에 source
전달합니다.
호출 GroupBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IEqualityComparer<TKey>) 을 나타내는 식 트리를 실행한 결과로 발생하는 쿼리 동작은 매개 변수 형식 source
의 구현에 따라 달라집니다. 예상되는 동작은 의 요소를 source
키 값별로 그룹화한다는 것입니다. 키 값은 각 요소에서 를 호출하여 keySelector
가져오고 키 값은 를 사용하여 comparer
비교됩니다.
적용 대상
.NET