c# List根据某个属性进行分类,变成以属性名称作为分类的多个List

Posted wanchenggui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# List根据某个属性进行分类,变成以属性名称作为分类的多个List相关的知识,希望对你有一定的参考价值。

在平时的开发中,我们从数据库中得到List列表,但是我们希望可以根据属性名称再次进行分类。

其实LINQ中已经内置相应的算法。

长话短说,直接上代码:

var dataList = JsonHelper.DeserializeJsonToList<BaseSubGameTaxGrowthTrend>(JsonHelper.SerializeObject(dataTable));

dataList.GroupBy(x => x.KindName).Select(x => new SubGameTaxGrowthTrend { KindName = x.Key,ListData = x.ToList() }).ToList();

其中,BaseSubGameTaxGrowthTrend类如下:

public class BaseSubGameTaxGrowthTrend
{
public string KindName { set; get; }
public double Revenue { set; get; }
public DateTime ConcludeTime { set; get; }
}

SubGameTaxGrowthTrend 类就是我们最后想要得到的效果类。

public class SubGameTaxGrowthTrend
{
public string KindName { set; get; }
public List<BaseSubGameTaxGrowthTrend> ListData { get; set; }
}

补充:有时候我们在得到数据后,只想筛选除不一样的属性字段。例如只想筛选出所有不一样的时间。

var dataList = JsonHelper.DeserializeJsonToList<BaseSubGameTaxGrowthTrend>(JsonHelper.SerializeObject(dataTable));
var timeList = dataList.Where((x, i) => dataList.FindIndex(z => z.ConcludeTime == x.ConcludeTime) == i).ToList();

 

以上是关于c# List根据某个属性进行分类,变成以属性名称作为分类的多个List的主要内容,如果未能解决你的问题,请参考以下文章

Java关于list集合根据集合元素对象的某个或多个属性进行排序的工具类

List集合如何根据泛型中某个属性进行排序

List集合如何根据泛型中某个属性进行排序

c# 如何获取列表中某个属性最大或最小的元素?

List集合中的对象根据某个相同的属性,合并另外属性

List集合中的对象根据某个相同的属性,合并另外属性