GroupBy C# with Example



GroupBy C# with Example

GroupBy is an easy way to sort a IEnumerable collection of items into distinct groups. 
Simple Example 
In this first example, we end up with two groups, odd and even items. 
List iList = new List() { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 
var grouped = iList.GroupBy(x => x % 2 == 0); 
//Groups iList into odd [13579] and even[2468] items 
foreach(var group in grouped) 
{ 
foreach (int item in group) 
{ 
Console.Write(item); // 135792468 (first  odd  then  even) 
} 
} 
More Complex Example 
Let's take grouping a list of people by age as an example. First, we'll create a Person object which has two 
properties, Name and Age. 
public class Person 
{ 
public int Age {get; set;} 
public string Name {get; set;} 
} 
Then we create our sample list of people with various names and ages. 
List people = new List(); 
people.Add(new Person{Age = 20, Name = "Mouse"}); 
people.Add(new Person{Age = 30, Name = "Neo"}); 
people.Add(new Person{Age = 40, Name = "Morpheus"}); 
people.Add(new Person{Age = 30, Name = "Trinity"}); 
people.Add(new Person{Age = 40, Name = "Dozer"}); 
people.Add(new Person{Age = 40, Name = "Smith"}); 
Then we create a LINQ query to group our list of people by age. 
var query = people.GroupBy(x => x.Age); 
 

Doing so, we can see the Age for each group, and have a list of each person in the group. 
foreach(var result in query) 
{ 
Console.WriteLine(result.Key); 
foreach(var person in result) 
Console.WriteLine(person.Name); 
} 
This results in the following output: 
20 
Mouse 
30 
Neo 
Trinity 
40 
Morpheus 
Dozer 
Smith 
You can play with the live demo on .NET Fiddle 

0 Comment's

Comment Form

Submit Comment