👩‍💻 Расширенные методы LINQ



LINQ крайне прикольная штука, она позволяет решать сложные задачи обработки данных лаконично.



Сейчас расскажу про менее очевидные, но мощные возможности, которые помогут вам оптимизировать работу с коллекциями и данными:



1. Группировка с последующей фильтрацией
— можно группировать элементы и сразу применять фильтры на основе условий:

var data = new[] { 1, 2, 3, 4, 5, 6 };

var result = data.GroupBy(x => x % 2)

.Where(g => g.Key == 1)

.SelectMany(g => g);

// Результат: [1, 3, 5]




2. Создание словарей с помощью ToDictionary — LINQ позволяет преобразовать коллекцию в словарь:

var items = new[] { "apple", "banana", "cherry" };

var dict = items.ToDictionary(x => x, x => x.Length);



// Результат: {"apple": 5, "banana": 6, "cherry": 6}




3. Выбор уникальных элементов через DistinctBy:


Сравнение объектов по конкретному ключу с использованием DistinctBy (доступно через System.Linq)

var people = new[] {

new { Name = "Alice", Age = 30 },

new { Name = "Bob", Age = 25 },

new { Name = "Alice", Age = 35 }

};

var unique = people.DistinctBy(p =>

p.Name);

// Результат: Alice (30), Bob (25)




C# Ready | #техсобес