string[] names = { "Tom", "Dick", "Harry", "Mary", "Jay" };
IEnumerable query = names .Where (n => n.Contains ("a")) .OrderBy (n => n.Length) .Select (n => n.ToUpper()); foreach(var i in query){ Console.WriteLine(i);}
var query = names .Where (n => n.Contains ("a")) .OrderBy (n => n.Length) .Select (n => n.ToUpper()); foreach(var i in query){ Console.WriteLine(i);}
IEnumerable filtered = names.Where(n => n.Contains ("a"));foreach(var i in filtered){ Console.WriteLine(i);}IEnumerable sorted = filtered.OrderBy (n => n.Length);foreach(var i in sorted){ Console.WriteLine(i);}IEnumerable finalQuery = sorted.Select (n => n.ToUpper());foreach(var i in finalQuery){ Console.WriteLine(i);}
string[] names = { "Tom", "Dick", "Harry", "Mary", "Jay" };names.Where (n => n.Length == names.OrderBy (n2 => n2.Length) .Select (n2 => n2.Length).First())foreach(var i in names){ Console.WriteLine(i);}var query = from n in names where n.Length == (from n2 in names orderby n2.Length select n2.Length).First() select n;query.Dump ("Same thing as a query expression");query = from n in names where n.Length == names.OrderBy (n2 => n2.Length).First().Length select n;query.Dump ("Reformulated");query = from n in names where n.Length == names.Min (n2 => n2.Length) select n;query.Dump ("Same result, using Min aggregation");