Список групп или сортировка

#c# #arrays #list #sorting #xamarin.forms

#c# #массивы #Список #сортировка #xamarin.forms

Вопрос:

Я пытаюсь сгруппировать список с помощью программы c # на Xamarin.

Список исключен из списка;
Образцом данных является
ExpList (элемент, dop, значение)

бакалея 01/03/2019 1000
одежды 04/03/2019 250
бакалея 01/04/2019 500
фильм 02/03/2018 550
одежды 02/05/2019 550

Я хочу сгруппировать список по имени элемента и мне нужно вычислить его общее значение. ie.
Сгруппируйте список
бакалея 01/03/2019 1000
бакалея 01/04/2019 500
одежда 04/03/2019 250
одежда 02/05/2019 550
фильм 02/03/2018 550

Рассчитайте,
мне нужна некоторая информация о группе, как показано ниже,
Общее количество элементов группы равно 3,
количество продуктов 2 раза и значение 1500,
количество одежды 2 раза и значение 800,
количество фильмов 1 раз и значение 550

Комментарии:

1. list.GroupBy(x => x.Item).Select(x => new { Item = x.Key, Total = x.Sum(y => y.Value.Value) }).ToList();

2. это уже хорошо задокументировано: developer.xamarin.com/samples/xamarin-forms/UserInterface /…

Ответ №1:

Обратитесь к следующему коду

 public class People
{
    public string Name { get; set; }
    public string Date { get; set; }
    public double Value { get; set; }
}


List<People> peopleList = new List<People>()
        {
            new People { Name="grocery ",Date="01/03/2019",Value=1000 },
            new People { Name="clothes ",Date="02/03/2019",Value=250 },
            new People { Name="grocery ",Date="04/03/2019",Value=500 },
            new People { Name="clothes ",Date="01/02/2019",Value=550 },
            new People { Name="movie ",Date="03/03/2019",Value=550 },

        };


var groupList = peopleList.GroupBy(x => x.Name).Select(x => new { name = x.Key,Total=x.Sum(y=>y.Value),Num=x.Distinct().Count() }).Distinct().ToList();

Console.WriteLine("Total group Items is " groupList.Count() );

foreach(var item in groupList)
{
  Console.WriteLine(item.name   " Number of times "  item.Num   " and Value is "   item.Total);
}