Here is an example of aggregation using LINQ to a collection –
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace GroupByExampleLinq { public class Person { public string FirstName { get; set; } public string LastName { get; set; } public string Email { get; set; } public string AccountNumber { get; set; } } class Program { static void Main(string[] args) { Example(); Console.ReadKey(); } static void Example() { // Creating new List of Person List personCollection = new List() { //Adding a new Person new Person(){ AccountNumber = "123123 634566", Email = "qwerty@qwerty.com", FirstName = "John", LastName = "Doe" }, //Adding a new Person new Person(){ AccountNumber = "123123 678879", Email = "qwerty@qwerty.com", FirstName = "John", LastName = "Doe" }, //Adding a new Person new Person(){ AccountNumber = "123123 122134", Email = "qwerty@qwerty.com", FirstName = "John", LastName = "Doe" }, //Adding a new Person new Person(){ AccountNumber = "123123 890980", Email = "asdf@asdf.com", FirstName = "Jane", LastName = "Doe" } }; // Using LINQ to query the collection and group them by the email address var personQuery = from p in personCollection group p by p.Email into g select new { Email = g.Key, Accounts = g }; // Output the email address and the count of records for each group foreach (var item in personQuery) { Console.WriteLine("{0} has {1} accounts.", item.Email, item.Accounts.Count()); } } } }
Thx :=)