C# LINQ: группировка и суммирование данных с помощью операторов Group By и Sum

В C# при использовании LINQ (Language-Integrated Query) вы можете выполнять операции группировки и суммирования коллекций данных с помощью операторов group byи Sum. Вот несколько способов добиться этого:

  1. Метод 1: использование синтаксиса запроса

    var groupedData = from item in collection
                  group item by item.Category into grouped
                  select new
                  {
                      Category = grouped.Key,
                      Total = grouped.Sum(item => item.Value)
                  };
  2. Метод 2: использование синтаксиса метода

    var groupedData = collection.GroupBy(item => item.Category)
                            .Select(grouped => new
                            {
                                Category = grouped.Key,
                                Total = grouped.Sum(item => item.Value)
                            });
  3. Метод 3: использование синтаксиса запроса с Sum

    var groupedData = from item in collection
                  group item by item.Category into grouped
                  select new
                  {
                      Category = grouped.Key,
                      Total = (from i in grouped select i.Value).Sum()
                  };
  4. Метод 4. Использование синтаксиса метода с Sum

    var groupedData = collection.GroupBy(item => item.Category)
                            .Select(grouped => new
                            {
                                Category = grouped.Key,
                                Total = grouped.Sum(item => item.Value)
                            });