Изучение LINQ C#: основы и примеры использования
LINQ (Language Integrated Query) - это технология, которая позволяет выполнить запрос к различным источникам данных (коллекции объектов, базы данных, XML-документы и т.д.) на основе языка C#.
LINQ предоставляет стандартные операции для выборки, проекции, сортировки, группирования и агрегации данных, а также предоставляет возможность создания пользовательских операций.
Операции выборки в LINQ выполняются с помощью метода Where, который возвращает элементы списка, удовлетворяющие определенному условию. Например:
var list = new List
var result = list.Where(x => x > 3);
// result содержит 4 и 5
Операции проекции выполняются с помощью метода Select, который возвращает новую последовательность на основе данных исходной последовательности. Например:
var list = new List
var result = list.Select(x => x * 2);
// result содержит 2, 4, 6, 8, 10
Операции сортировки выполняются с помощью метода OrderBy, который сортирует элементы списка в заданном порядке. Например:
var list = new List
var result = list.OrderBy(x => x);
// result содержит 1, 2, 3, 4, 5
Операции группировки выполняются с помощью метода GroupBy, который группирует элементы списка по определенному критерию. Например:
var list = new List
var result = list.GroupBy(x => x % 2);
// result содержит две группы: одна содержит 1 и 3, другая содержит 2, 4 и 5
Операции агрегации выполняются с помощью методов Aggregate и Sum, которые выполняют некоторую математическую операцию над элементами списка. Например:
var list = new List
var result = list.Aggregate((x, y) => x * y);
// result содержит произведение всех элементов списка: 120
var sum = list.Sum();
// sum содержит сумму всех элементов списка: 15
Также в LINQ есть возможность создать пользовательские операции с помощью метода Extension. Например, можно создать метод, который вернет все элементы списка, где количество символов равно заданному числу:
public static IEnumerable
{
return source.Where(s => s.Length == length);
}
Пример использования:
var list = new List
var result = list.GetByLength(3);
// result содержит "aaa" и "d"
Таким образом, LINQ - это мощный инструмент для выполнения запросов к различным источникам данных на языке C#. С его помощью можно легко и быстро обрабатывать данные и получать нужные результаты.