C# Exception Handling
C# File I/O
C# Delegates and Events
C# Generics
C# Async Programming
C# LINQ Introduction

C# LINQ Introduction

LINQ (Language Integrated Query) lets you query any IEnumerable<T> — arrays, lists, databases — using the same expressive syntax.

1 - Method Syntax vs Query 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 + " ");

2 - Filtering and Projection

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})");

3 - Aggregation

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

Note: LINQ queries are lazily evaluated — they do not execute until you iterate the results or call a terminal method like ToList(), ToArray(), or Count(). Call ToList() to materialise the results and avoid re-running the query on every iteration.

-Tip-

C# {"id":46,"topic_id":3,"name":"C# LINQ","slug":"c-linq","image":null,"description":"<p>Language Integrated Query \u2014 query collections, databases, and XML with a unified syntax.<\/p>","icon":null,"class":null,"color":null,"status":0,"order":15,"created_at":"2026-05-03T02:03:02.000000Z","updated_at":"2026-05-03T02:03:02.000000Z"} - List of Contents

Related Tutorials: