Quantifiers
Any - Simple
This sample uses Any to determine if any of the words in the array contain the substring 'ei'.
Code:
public void Linq67()
{
string[] words = { "believe", "relief", "receipt", "field" };
bool iAfterE = words.Any(w => w.Contains("ei"));
//DONE fixed typo in writeline
Log.WriteLine("There is a word in the list that contains 'ei': {0}", iAfterE);
}
Result:
Any - Grouped
This sample uses Any to return a grouped a list of products only for categories that have at least one product that is out of stock.
Code:
public void Linq69()
{
List products = GetProductList();
var productGroups =
products.GroupBy(prod => prod.Category)
.Where(prodGroup => prodGroup.Any(p => p.UnitsInStock == 0))
.Select(prodGroup => new {
Category = prodGroup.Key,
Products = prodGroup});
ObjectDumper.Write(productGroups, 1);
}
Result:
All - Simple
This sample uses All to determine whether an array contains only odd numbers.
Code:
public void Linq70()
{
int[] numbers = { 1, 11, 3, 19, 41, 65, 19 };
bool onlyOdd = numbers.All(n => n % 2 == 1);
Log.WriteLine("The list contains only odd numbers: {0}", onlyOdd);
}
Result:
All - Grouped
This sample uses All to return a grouped a list of products only for categories that have all of their products in stock.
Code:
public void Linq72()
{
List products = GetProductList();
var productGroups =
products.GroupBy(prod => prod.Category)
.Where(prodGroup => prodGroup.All(p => p.UnitsInStock > 0))
.Select(prodGroup => new {Category = prodGroup.Key, Products = prodGroup});
ObjectDumper.Write(productGroups, 1);
}
Result: