Answered Group By LINQ Query.

  • Friday, February 08, 2013 6:59 AM
     
     

    Hi ,

    I have the following list :

    Name    Stream

    ABC  DotNet

    DEF         JAVA

    ABC  JAVA

    ABC  JAVA

    i want the result as Using Linq :

    ABC  Dotnet:1; JAVA:2

    DEF  JAVA:1

    Please Help .

    Thanks in Advance :)

All Replies

  • Friday, February 08, 2013 2:31 PM
     
     Answered Has Code

    Hi Ind_Alchemist;

    The following code snippet will do what you need.

    // You list of the data
    List<Data> dataList = new List<Data>() { new Data { Name = "ABC", Stream = "DotNet" },
        new Data { Name = "DEF", Stream = "JAVA" },
        new Data { Name = "ABC", Stream = "JAVA" },
        new Data { Name = "ABC", Stream = "JAVA" }
    };
    
    var results = from d in dataList
                  group d by new { d.Name, d.Stream } into dataGroup
                  select new {
                    Name = dataGroup.Key.Name,
                    Stream = dataGroup.Key.Stream,
                    Count = dataGroup.Count()
                  };
    
    // Class to hold the two data values in each element of a List object.
    public class Data
    {
        public string Name { get; set; }
        public string Stream { get; set; }
    }

      


    Fernando (MCSD)

    If a post answers your question, please click "Mark As Answer" on that post and "Mark as Helpful".