LINQ (Language Integrated Query) — это технология .NET, которая интегрирует возможности запросов прямо в язык C#. Это мощная система для работы с данными, которая предоставляет единый синтаксис для запросов к различным источникам данных.
var numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
var evenNumbers = numbers.Where(n => n % 2 == 0);
// Результат: 2, 4, 6
var persons = new List<Person> { /* ... */ };
var names = persons.Select(p => p.Name);
// Получаем коллекцию имен
var products = new List<Product> { /* ... */ };
var sortedProducts = products
.OrderBy(p => p.Price)
.ThenBy(p => p.Name);
var employees = new List<Employee> { /* ... */ };
var byDepartment = employees
.GroupBy(e => e.Department);
var sales = new List<double> { 100, 200, 300 };
var total = sales.Sum(); // 600
var average = sales.Average(); // 200
var max = sales.Max(); // 300
var customers = /* ... */;
var orders = /* ... */;
var customerOrders =
from c in customers
join o in orders on c.Id equals o.CustomerId
select new { c.Name, o.Amount };
XDocument doc = XDocument.Load("data.xml");
var names = from el in doc.Descendants("employee")
select el.Attribute("name").Value;
using (var context = new AppDbContext())
{
var recentOrders = context.Orders
.Where(o => o.Date > DateTime.Now.AddDays(-7))
.OrderByDescending(o => o.TotalAmount)
.ToList();
}
// Параллельный LINQ (PLINQ)
var largeData = Enumerable.Range(1, 1000000);
var parallelResult = largeData
.AsParallel()
.Where(x => x % 2 == 0)
.ToList();
LINQ — это революционная технология в .NET, которая изменила способ работы с данными. Она сочетает мощь запросов с безопасностью типов и удобством современного C#. Будь то простые операции с коллекциями или сложные запросы к базам данных, LINQ предоставляет выразительный и эффективный инструментарий для разработчика.