LINQ (Language Integrated Query) lets you query any IEnumerable<T> — arrays, lists, databases — using the same expressive syntax.
int[] numbers = { 5, 2, 8, 1, 9, 3, 7, 4, 6 };
// Method syntax (most common)
var result1 = numbers
.Where(n => n > 4)
.OrderBy(n => n)
.Select(n => n * 2);
// Query syntax (SQL-like)
var result2 = from n in numbers
where n > 4
orderby n
select n * 2;
// Both produce: 10, 12, 14, 16, 18
foreach (int n in result1) Console.Write(n + " ");
var people = new[]
{
new { Name = "Alice", Age = 30, Role = "admin" },
new { Name = "Bob", Age = 22, Role = "user" },
new { Name = "Carol", Age = 35, Role = "admin" },
new { Name = "Dave", Age = 19, Role = "user" },
};
var admins = people
.Where(p => p.Role == "admin")
.Select(p => new { p.Name, p.Age })
.OrderBy(p => p.Name);
foreach (var p in admins)
Console.WriteLine($"{p.Name} ({p.Age})");
var numbers = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Console.WriteLine(numbers.Count()); // 10
Console.WriteLine(numbers.Sum()); // 55
Console.WriteLine(numbers.Average()); // 5.5
Console.WriteLine(numbers.Min()); // 1
Console.WriteLine(numbers.Max()); // 10
Console.WriteLine(numbers.Aggregate((a,b) => a * b)); // 3628800