Mega Code Archive

 
Categories / C# Book / 04 LINQ
 

0425 Where

Input: IEnumerable<TSource> Lambda expression: TSource => bool or (TSource,int) => bool Query syntax: where boolExpression Where returns the elements that satisfy the given expression. using System; using System.Collections; using System.Collections.Generic; using System.Linq; class Program { static void Main() { string[] names = { "Java", "C#", "Javascript", "SQL", "Oracle", "Python", "C++", "C", "HTML", "CSS" }; IEnumerable<string> query = names.Where(name => name.EndsWith("e")); foreach (string s in query) { Console.WriteLine(s); } } } The output: Oracle In query syntax: using System; using System.Collections; using System.Collections.Generic; using System.Linq; class Program { static void Main() { string[] names = { "Java", "C#", "Javascript", "SQL", "Oracle", "Python", "C++", "C", "HTML", "CSS" }; IEnumerable<string> query = from n in names where n.EndsWith("e") select n; foreach (string s in query) { Console.WriteLine(s); } } } The output: Oracle A where clause can appear more than once in a query: using System; using System.Collections; using System.Collections.Generic; using System.Linq; class Program { static void Main() { string[] names = { "Java", "C#", "Javascript", "SQL", "Oracle", "Python", "C++", "C", "HTML", "CSS" }; IEnumerable<string> query = from n in names where n.Length > 3 let u = n.ToUpper() where u.EndsWith("E") select u; foreach (string s in query) { Console.WriteLine(s); } } } The output: ORACLE Indexed filtering where expression using System; using System.Collections; using System.Collections.Generic; using System.Linq; class Program { static void Main() { string[] names = { "Java", "C#", "Javascript", "SQL", "Oracle", "Python", "C++", "C", "HTML", "CSS" }; IEnumerable<string> query = names.Where((n, i) => i % 2 == 0); foreach (string s in query) { Console.WriteLine(s); } } } The output: Java Javascript Oracle C++ HTML