Grouping Data (C#)
Grouping refers to the operation of putting data into groups so that the elements in each group share a common attribute.
The following illustration shows the results of grouping a sequence of characters. The key for each group is the character.
The standard query operator methods that group data elements are listed in the following section.
Methods
Method Name | Description | C# Query Expression Syntax | More Information |
---|---|---|---|
GroupBy | Groups elements that share a common attribute. Each group is represented by an IGrouping<TKey,TElement> object. | group … by -or- group … by … into … |
Enumerable.GroupBy Queryable.GroupBy |
ToLookup | Inserts elements into a Lookup<TKey,TElement> (a one-to-many dictionary) based on a key selector function. | Not applicable. | Enumerable.ToLookup |
Query Expression Syntax Example
The following code example uses the group by
clause to group integers in a list according to whether they are even or odd.
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
*/
See also
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.
.NET feedback
The .NET documentation is open source. Provide feedback here.
Feedback
Submit and view feedback for