Roadmap › LINQ — Language Integrated Query › Module: LINQ Basics
Lessons in this course (12)

3. Filtering, projection and ordering

Basic★ Must knowLesson 3 of 12
csharp
var inStock = products.Where(p => p.Stock > 0);
var withIndex = products.Where((p, i) => i % 2 == 0);           // overload with index

var names = products.Select(p => p.Name);
var dto = products.Select(p => new ProductDto(p.Id, p.Name.ToUpper()));

var sorted = products.OrderBy(p => p.Category)                   // primary sort
                     .ThenByDescending(p => p.Price)             // secondary sort
                     .ToList();

var electronics = products.OfType<Product>().Where(p => p.Category == "Electronics");   // OfType filters by type

Calling OrderBy twice replaces the first sort — use ThenBy for secondary keys. LINQ OrderBy is a stable sort.