private static void Where_Basic() { foreach (Person p in PersonsDatabase.AllPersons()) { p.Print(); } Console.WriteLine("-----------------------------------------------------"); Console.WriteLine("Persons over 14 years with full name starting with 'M'"); Console.WriteLine("-----------------------------------------------------"); var query = PersonsDatabase.AllPersons() .Where(p => (p.Age >= 14) && p.FullName.StartsWith("M")); // Or: //var query = from p in PersonsDatabase.AllPersons() // where (p.Age >= 14) && p.FullName.StartsWith("M") // select p; foreach (Person p in query) { p.Print(); } }
private static void GroupBy_Basic() { var query = from p in PersonsDatabase.AllPersons() where p.Age > 30 orderby p.DateOfBirth.Year ascending group p by p.DateOfBirth.Year into yearsGroups where (yearsGroups.Key >= 1950) && (yearsGroups.Key <= 1970) select yearsGroups; //var query = PersonsDatabase.AllPersons() // .Where(p => p.Age > 30) // .OrderBy(p => p.DateOfBirth.Year) // .GroupBy(p => p.Age); foreach (var group in query) { Console.WriteLine("--------------"); Console.WriteLine($"Persons born in year: {group.Key}"); Console.WriteLine("--------------"); foreach (var p in group) { p.Print(); } } }
private static void Select_Basic_And_With_Index() { var query = PersonsDatabase.AllPersons() .Select((p, index) => new { Name = p.FullName, Index = index }); //IEnumerable<string> query = from p in PersonsDatabase.AllPersons() // select p.FullName; foreach (var personNameAndIndex in query) { Console.WriteLine($"{personNameAndIndex.Index}) {personNameAndIndex.Name}"); } }
private static void OrderBy_Basic() { //var query = PersonsDatabase.AllPersons() // .Where(p => (p.Age > 20) && (p.Age < 40)) // .OrderBy(p => p.Age) // .ThenByDescending(p => p.FullName); var query = from p in PersonsDatabase.AllPersons() where (p.Age > 20) && (p.Age < 40) orderby p.Age ascending, p.FullName descending select p; foreach (Person p in query) { p.Print(); } }
private static void Where_With_Index() { int index = 0; foreach (Person p in PersonsDatabase.AllPersons()) { p.Print(index); index++; } Console.WriteLine("-----------------------------------------------------"); Console.WriteLine("Persons over 14 years with full name starting with 'M'"); Console.WriteLine("-----------------------------------------------------"); var query1 = PersonsDatabase.AllPersons() .Where(p => (p.Age >= 14) && p.FullName.StartsWith("M")); //var query1 = from p in PersonsDatabase.AllPersons() // where (p.Age >= 14) && p.FullName.StartsWith("M") // select p; index = 0; foreach (Person p in query1) { p.Print(index); index++; } Console.WriteLine("-----------------------------------------------------"); Console.WriteLine("Persons over 14 years with full name starting with 'M' and on even index"); Console.WriteLine("-----------------------------------------------------"); var query2 = query1.Where((p, index) => index % 2 == 0); foreach (Person p in query2) { p.Print(); } }