Lesson 12 of 30
Lambda Expressions and LINQ
C# in Visual Studio 2026 — a hands-on guide for developers at every level.
Lambda Expressions
A lambda is an anonymous function defined with the => arrow. Lambdas are used heavily with LINQ and delegates.
// Single expression
Func<int, int> square = x => x * x;
Console.WriteLine(square(5)); // 25
// Multiple parameters
Func<int, int, int> add = (a, b) => a + b;
// Statement body
Action<string> greet = name =>
{
string msg = $"Hello, {name}!";
Console.WriteLine(msg);
};
greet("Alice");
LINQ – Language Integrated Query
LINQ lets you query any collection using a fluent method-chain syntax:
var numbers = new[] { 3, 1, 4, 1, 5, 9, 2, 6 };
var evens = numbers.Where(n => n % 2 == 0);
var sorted = numbers.OrderBy(n => n);
var doubled = numbers.Select(n => n * 2);
int total = numbers.Sum();
double avg = numbers.Average();
int max = numbers.Max();
Console.WriteLine(string.Join(", ", evens)); // 4, 2, 6
Console.WriteLine($"Sum={total} Avg={avg:F1} Max={max}");
Chaining LINQ
var result = numbers
.Where(n => n > 2)
.OrderByDescending(n => n)
.Take(3)
.ToList();
Console.WriteLine(string.Join(", ", result)); // 9, 6, 5
LINQ on Objects
record Person(string Name, int Age);
var people = new[] {
new Person("Alice", 30),
new Person("Bob", 25),
new Person("Carol", 35)
};
var over28 = people
.Where(p => p.Age > 28)
.Select(p => p.Name);
foreach (var name in over28)
Console.WriteLine(name); // Alice, Carol