using System.Collections.Generic;
public static void Main()
int[] numbers = {5, 3, 4, 8 ,9 ,33};
var getTheNumbers = from number in numbers
List<int> newNumbers = new List<int>();
foreach(var number in numbers)
System.Console.WriteLine(string.Join(" , ", getTheNumbers));
System.Console.WriteLine(string.Join(" , ", newNumbers));
List<int> numbersList = getTheNumbers.ToList();
numbersList.ForEach(n => Console.WriteLine("Numbers: " + n));
Console.WriteLine("Grouping");
List<Person> people = GetPeople();
Console.WriteLine("Grouping By Gender:");
var groupedByGender = from p in people
foreach(var p in groupedByGender)
Console.WriteLine(p.Key);
Console.WriteLine(string.Format("Name: {0} - Gender: {1} - Age {2} ",person.Name, person.Gender, person.Age) );
Console.WriteLine("Grouping By Age , over 21:");
var overTwentyOnes = from p in people
foreach(var p in overTwentyOnes)
Console.WriteLine(p.Key);
Console.WriteLine(string.Format("Name: {0} - Gender: {1} - Age {2} ",person.Name, person.Gender, person.Age) );
Console.WriteLine("Grouping By First Letter of Name:");
var alphaGroup = from p in people
foreach(var p in alphaGroup)
Console.WriteLine(p.Key);
Console.WriteLine(string.Format("Name: {0} - Gender: {1} - Age {2} ",person.Name, person.Gender, person.Age) );
Console.WriteLine("LINQ METHOD SYNTAX:");
var alphaBeticGroup = people.OrderBy(p => p.Name).GroupBy(p => p.Name[0]);
foreach(var p in alphaBeticGroup)
Console.WriteLine(p.Key);
Console.WriteLine(string.Format("Name: {0} - Gender: {1} - Age {2} ",person.Name, person.Gender, person.Age) );
Console.WriteLine("LINQ METHOD SYNTAX, Grouping By Multiple Keys (Gender, Age):");
var multiKey = people.GroupBy(p => new { p.Gender, p.Age}).OrderBy(p => p.Count());
foreach(var p in multiKey)
Console.WriteLine(p.Key);
Console.WriteLine(string.Format("Name: {0}",person.Name) );
public enum Gender { Male, Female }
public string Name {get;set;}
public int Age {get;set;}
public int Height {get;set;}
public Gender Gender {get;set;}
public static List<Person> GetPeople()
var people = new List<Person>
new Person { Name = "Tom", Age = 20, Height = 180, Gender = Gender.Male },
new Person { Name = "Dick", Age = 20, Height = 185, Gender = Gender.Male },
new Person { Name = "Harry", Age = 19, Height = 170, Gender = Gender.Male },
new Person { Name = "Jane", Age = 21, Height = 170, Gender = Gender.Female },
new Person { Name = "Wendy", Age = 20, Height = 173, Gender = Gender.Female },
new Person { Name = "Susan", Age = 23, Height = 179, Gender = Gender.Female },