C# 列表分组或排序
我正在尝试使用Xamarin上的c#程序对列表进行分组 列表列表C# 列表分组或排序,c#,arrays,list,sorting,xamarin.forms,C#,Arrays,List,Sorting,Xamarin.forms,我正在尝试使用Xamarin上的c#程序对列表进行分组 列表列表 样本数据为 解释列表(项目、dop、值) 杂货店2019年3月1日1000 衣服2019年3月4日250 杂货店2019年4月1日500 电影2018年3月2日550 衣服2019年5月2日550 我想按项目名称对列表进行分组,并需要计算其总值。即 将列表分组 杂货店2019年3月1日1000 杂货店2019年4月1日500 衣服2019年3月4日250 衣服2019年5月2日550 电影2018年3月2日550 计算 我想要一些
样本数据为
解释列表(项目、dop、值)
杂货店2019年3月1日1000
衣服2019年3月4日250
杂货店2019年4月1日500
电影2018年3月2日550
衣服2019年5月2日550
我想按项目名称对列表进行分组,并需要计算其总值。即
将列表分组
杂货店2019年3月1日1000
杂货店2019年4月1日500
衣服2019年3月4日250
衣服2019年5月2日550
电影2018年3月2日550
计算
我想要一些关于组的信息,如下所示
团体项目总数为3个
杂货店数量乘以2,价值为1500
衣服数量乘以2,数值为800
电影数乘以1,值为550
参考以下代码
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);
}
公共阶层人士
{
公共字符串名称{get;set;}
公共字符串日期{get;set;}
公共双值{get;set;}
}
List peopleList=新列表()
{
新人{Name=“杂货店”,Date=“01/03/2019”,Value=1000},
新人{Name=“cloth”,Date=“2019年3月2日”,Value=250},
新人{Name=“杂货店”,Date=“04/03/2019”,Value=500},
新人{Name=“cloth”,Date=“01/02/2019”,Value=550},
新人{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(“组项目总数为”+groupList.Count());
foreach(组列表中的变量项)
{
Console.WriteLine(item.name+“次数”+item.Num+,值为“+item.Total”);
}
list.GroupBy(x=>x.Item)。选择(x=>new{Item=x.Key,Total=x.Sum(y=>y.Value.Value)})代码>这已经有很好的文档记录: