Grupowanie danych
Grupowanie odnosi się do operacji umieszczania danych w grupach, tak, aby elementy w każdej grupie udostępniać wspólne atrybutu.
Poniższa ilustracja pokazuje wyników grupowania sekwencję znaków.Klucz dla każdej grupy jest znakiem.
Metody operator standardowej kwerendy, które grupować elementy danych są wymienione w poniższej sekcji.
Metody
Nazwa metody |
Opis |
Kwerendy języka C# składni wyrażenia |
Visual BasicSkładni wyrażenia kwerendy |
Więcej informacji |
---|---|---|---|---|
GroupBy |
Elementy grup, które współużytkują typowe atrybutu.Każda grupa jest reprezentowana przez IGrouping obiektu. |
group … by - lub - group … by … into … |
Group … By … Into … |
|
ToLookup |
Wstawia elementy do Lookup (słownika jeden do wielu) na podstawie funkcji selektor klucza. |
Nie dotyczy. |
Nie dotyczy. |
Przykład składni wyrażenia kwerendy
Następujący kod w przykładzie wykorzystano group by klauzuli w C# lub Group By w klauzuli Visual Basic do liczb całkowitych grupy na liście zgodnie z tego, czy są one parzysta lub nieparzysta.
Dim numbers As New System.Collections.Generic.List(Of Integer)(
New Integer() {35, 44, 200, 84, 3987, 4, 199, 329, 446, 208})
Dim query = From number In numbers
Group By Remainder = (number Mod 2) Into Group
Dim sb As New System.Text.StringBuilder()
For Each group In query
sb.AppendLine(If(group.Remainder = 0, vbCrLf & "Even numbers:", vbCrLf & "Odd numbers:"))
For Each num In group.Group
sb.AppendLine(num)
Next
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' Odd numbers:
' 35
' 3987
' 199
' 329
' Even numbers:
' 44
' 200
' 84
' 4
' 446
' 208
List<int> numbers = new List<int>() { 35, 44, 200, 84, 3987, 4, 199, 329, 446, 208 };
IEnumerable<IGrouping<int, int>> query = from number in numbers
group number by number % 2;
foreach (var group in query)
{
Console.WriteLine(group.Key == 0 ? "\nEven numbers:" : "\nOdd numbers:");
foreach (int i in group)
Console.WriteLine(i);
}
/* This code produces the following output:
Odd numbers:
35
3987
199
329
Even numbers:
44
200
84
4
446
208
*/
Zobacz też
Zadania
Porady: tworzenie grup zagnieżdżonych (Przewodnik programowania w języku C#)
Porady: grupowanie plików według rozszerzenia (LINQ)
Porady: grupowanie wyników kwerendy (Przewodnik programowania w języku C#)
Porady: wykonanie podzapytania w operacji grupowania (Przewodnik programowania w języku C#)
Porady: dzielenie pliku na kilka plików za pomocą grup (LINQ)
Informacje
group — Klauzula (odwołanie w C#)
Group By — Klauzula (Visual Basic)