C# VS2026
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