#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);
}