Skip to main content

Linq - Language Integrated Query

Fortunately the implementation we saw here, was implemented by Microsoft and it is called Linq. Linq is actually a bunch of injected methods, (extension methods), on IEnumerable.

Actually we can remove most of the code we created earlier. the Filter method that we implemented earlier is called in Link Where and we can write:

static void Main(string[] args)
{
var numbers = new [] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

var evenNumbers = numbers
.Where(number => number % 2 == 0)
.Where(number => number > 5);

foreach (var number in evenNumbers)
{
Console.WriteLine(number);
}
}

Additional methods in Linq are:

  1. Select - It project an item.
  2. First - First item that comply the function parameter.
  3. FirstOrDefault - if there is no item comply the function parameter, get the default. (for integers, the default value for an undefined varaible is zero - 0)
  4. Single - give me a single item fulfiling this condition. If there are more items single returns an exception.
static void Main(string[] args)
{
var numbers = new [] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

var result = numbers.Where(number => number % 2 == 0);

result = result.Select(number => number * number);
var singleResult = result.First(number => number > 4);

var orders = new[] {
new { Id = 1, Amount = 100 },
new { Id = 2, Amount = 200 },
new { Id = 3, Amount = 150 }
};

var fullAmount = orders.Sum(order => order.Amount);

foreach (var number in result)
{
Console.WriteLine(number);
}
}

Bibilography