GroupBy Multiple Values in LINQ

Here's a simple example to show you how to GroupBy Multiple Values
using LINQ. In this example, I am grouping by Age and Sex to find the
count of people who have the same age and sex.

C#

public partial class LINQ : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

      List<Employee> empList = new List<Employee>();

      empList.Add(new Employee() { ID = 1, FName = "John", Age=23, Sex='M'  });

      empList.Add(new Employee() { ID = 2, FName = "Mary", Age = 25, Sex = 'F' });

      empList.Add(new Employee() { ID = 3, FName = "Amber", Age = 23, Sex = 'M' });

      empList.Add(new Employee() { ID = 4, FName = "Kathy", Age=25, Sex='M'});

      empList.Add(new Employee() { ID = 5, FName = "Lena", Age=27, Sex='F'});

      empList.Add(new Employee() { ID = 6, FName = "Bill", Age = 28, Sex = 'M' });

      empList.Add(new Employee() { ID = 7, FName = "Celina", Age = 27, Sex = 'F' });

      empList.Add(new Employee() { ID = 8, FName = "John", Age = 28, Sex = 'M' });

 

      var sums = empList

               .GroupBy(x => new { x.Age, x.Sex })

               .Select(group => new { Peo = group.Key, Count = group.Count() });

 

      foreach (var employee in sums)
          Response.Write(employee.Count + ": " + employee.Peo);

    }

    class Employee

    {

        public int ID { get; set; }

        public string FName { get; set; }

        public int Age { get; set; }

        public char Sex { get; set; }

    }

VB.NET

Partial Public Class LINQ

    Inherits System.Web.UI.Page

 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

        Dim empList As New List(Of Employee)()

        empList.Add(New Employee() With {.ID = 1, .FName = "John", .Age = 23, .Sex = "M"c})

        empList.Add(New Employee() With {.ID = 2, .FName = "Mary", .Age = 25, .Sex = "F"c})

        empList.Add(New Employee() With {.ID = 3, .FName = "Amber", .Age = 23, .Sex = "M"c})

        empList.Add(New Employee() With {.ID = 4, .FName = "Kathy", .Age = 25, .Sex = "M"c})

        empList.Add(New Employee() With {.ID = 5, .FName = "Lena", .Age = 27, .Sex = "F"c})

        empList.Add(New Employee() With {.ID = 6, .FName = "Bill", .Age = 28, .Sex = "M"c})

        empList.Add(New Employee() With {.ID = 7, .FName = "Celina", .Age = 27, .Sex = "F"c})

        empList.Add(New Employee() With {.ID = 8, .FName = "John", .Age = 28, .Sex = "M"c})

        Dim sums = empList.GroupBy(Function(x) New With {Key x.Age, Key x.Sex}).Select(Function(group) New With {Key .Peo = group.Key, Key .Count = group.Count()})

        For Each employee In sums

            ' use employee.Count and employee.Key

        Next employee

    End Sub

 

    Public Class Employee

        Private privateID As Integer

        Public Property ID() As Integer

            Get

                Return privateID

            End Get

            Set(ByVal value As Integer)

                privateID = value

            End Set

        End Property

        Private privateFName As String

        Public Property FName() As String

            Get

                Return privateFName

            End Get

            Set(ByVal value As String)

                privateFName = value

            End Set

        End Property

 

        Private privateAge As Integer

        Public Property Age() As Integer

            Get

                Return privateAge

            End Get

            Set(ByVal value As Integer)

                privateAge = value

            End Set

        End Property

 

        Private privateSex As Char

        Public Property Sex() As Char

            Get

                Return privateSex

            End Get

            Set(ByVal value As Char)

                privateSex = value

            End Set

        End Property

    End Class

End Class

 

GD Star Rating
loading...
GD Star Rating
loading...
GroupBy Multiple Values in LINQ, 5.0 out of 5 based on 1 rating
  • Share/Bookmark

No related posts.

Related posts brought to you by Yet Another Related Posts Plugin.

Leave a Reply