One example to find out number of years of oldest child in a list of parents.
using System;
using System.Collections.Generic;
using System.Linq;
namespace LINQtest
{
public class Child
{
public int Age { get; set; }
}
public class Parent
{
public Child[] Kids { get; set; }
}
public class MyLinq
{
public List<Parent> Parents { get; set; }
}
class Program
{
static void Main(string[] args)
{
Parent parentOne = new Parent();
parentOne.Kids = new Child[2];
parentOne.Kids[0] = new Child();
parentOne.Kids[0].Age = 1;
parentOne.Kids[1] = new Child();
parentOne.Kids[1].Age = 2;
Parent parentTwo = new Parent();
parentTwo.Kids = new Child[3];
parentTwo.Kids[0] = new Child();
parentTwo.Kids[0].Age = 5;
parentTwo.Kids[1] = new Child();
parentTwo.Kids[1].Age = 7;
parentTwo.Kids[2] = new Child();
parentTwo.Kids[2].Age = 6;
Parent parentThree = new Parent();
parentThree.Kids = new Child[2];
parentThree.Kids[0] = new Child();
parentThree.Kids[0].Age = 3;
parentThree.Kids[1] = new Child();
parentThree.Kids[1].Age = 4;
MyLinq myLinq = new MyLinq();
myLinq.Parents = new List();
myLinq.Parents.Add(parentOne);
myLinq.Parents.Add(parentTwo);
myLinq.Parents.Add(parentThree);
int maxAge = myLinq.Parents.Max(parent => parent.Kids.Max(kid => kid.Age));
Console.WriteLine("Oldest kid is age of: " + maxAge);
Console.WriteLine("Press any key");
Console.ReadKey();
}
}
}
POI:
int maxAge = myLinq.Parents.Max(parent => parent.Kids.Max(kid => kid.Age));
Because for example code:
IEnumerable<int> maxAges = myLinq.Parents.Select(parent => parent.Kids.Max(kid => kid.Age));
Will return collection of ages in list of parents.