我们有特定类别的数据列表:
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 }
],
]
答案 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