ASPNet组按类的属性列出数据

时间:2019-05-13 23:01:26

标签: asp.net asp.net-mvc asp.net-core

我们有特定类别的数据列表:

public string id { get; set; }
public string date { get; set; }

按日期对列表进行分组的最佳方法是什么?例如,我们具有任意类别的上述类类型的200多个条目的列表。如:

{ id: 324234, date: 120519 }
{ id: 354633, date: 120519 }
{ id: 9999349, date: 130519 }

我们要创建另一个列表,该列表按以下数据对项目进行分组:

[
   120519: [
    { id: 324234, date: 120519 }
    { id: 354633, date: 120519 }
   ],
   130519: [
    { id: 9999349, date: 130519 }
   ],
]

1 个答案:

答案 0 :(得分:0)

使用GroupBy

var groupedList = list.GroupBy(x=> x.date);

x=> x.date是您的选择器,它返回一个值。您可以使用表达式作为选择器:

var groupedList = list.GroupBy(x=> x.date > someDate);

这将导致两个列表,一个列出了someDate之后的日期,另一个列出了之前的日期

GroupBy返回IEnumerable<IGrouping<SelectorType, DataType>>

您还可以返回匿名类型作为列表的项目。参见GroupBy