This documentation is archived and is not being maintained.

Grouping Data

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.

LINQ Grouping Operations

The standard query operator methods that group data elements are listed in the following section.

Method Name


C# Query Expression Syntax

Visual Basic Query Expression Syntax

More Information


Groups elements that share a common attribute. Each group is represented by an IGrouping(Of TKey, TElement) object.

group … by


group … by … into …

Group … By … Into …




Inserts elements into a Lookup(Of TKey, TElement) (a one-to-many dictionary) based on a key selector function.

Not applicable.

Not applicable.


The following code example uses the group by clause in C# or the Group By clause in Visual Basic to group integers in a list according to whether they are even or odd.

        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

        ' Display the results.

        ' This code produces the following output:

        ' Odd numbers:
        ' 35
        ' 3987
        ' 199
        ' 329

        ' Even numbers:
        ' 44
        ' 200
        ' 84
        ' 4
        ' 446
        ' 208