P
PascalABC.NET официальный канал
@pascalabc_official2.0K подп.
1.2Kпросмотров
59.8%от подписчиков
28 января 2026 г.
📷 ФотоScore: 1.3K
Связка методов GroupBy и Each - словарь характеристик групп Открываем красоту LINQ в сочетании с элегантностью PascalABC.NET. Смотрите, как легко делать аналитику данных: type Product = auto class Category: string; Model: string; Price: real; Rating: real; end; begin var products := [ new Product('Phones', 'iPhone 13', 499.99, 4.5), new Product('Phones', 'Galaxy S21', 699.99, 4.7), new Product('Phones', 'iPhone 13', 299.99, 4.2), new Product('Laptops', 'MacBook', 999.99, 4.8), new Product('Laptops', 'MacBook', 1299.99, 4.9), new Product('Tablets', 'iPad Air', 399.99, 4.3), new Product('Tablets', 'iPad Air', 399.99, 4.3) ]; // 1. Количество уникальных моделей по категориям var uniqueModels := products .GroupBy(p -> p.Category) .Each(g -> g.DistinctBy(p -> p.Model).Count); // 2. Средняя цена по категориям var avgPrices := products .GroupBy(p -> p.Category) .Each(g -> g.Average(p -> p.Price)); // 3. Количество товаров по категориям var totalCounts := products .GroupBy(p -> p.Category) .Each(g -> g.Count); Println('Уникальные модели по категориям:'); uniqueModels.PrintLines(kv -> &#036;' {kv.Key}: {kv.Value}'); Println('Средняя цена по категориям:'); avgPrices.PrintLines(kv -> &#036;' {kv.Key}: &#036;{kv.Value:F2}'); Println('Всего товаров по категориям:'); totalCounts.PrintLines(kv -> &#036;' {kv.Key}: {kv.Value}'); end. Почему этот подход — находка: 🎯 .GroupBy() + .Each() — идеальная пара для групповых операций 🎯 Автоматический словарь — .Each() сам возвращает Dictionary<K,V> 🎯 Читаемость — код говорит сам за себя: "сгруппируй и для каждой группы посчитай" 🎯 Расширяемость — подходит для любых агрегаций: Average, Sum, Min, Max, DistinctBy Современный PascalABC.NET - для реальной аналитики данных!
1.2K
просмотров
1999
символов
Нет
эмодзи
Да
медиа

Другие посты @pascalabc_official

Все посты канала →
Связка методов GroupBy и Each - словарь характеристик групп — @pascalabc_official | PostSniper