我有一个班级及其名单
abc cs = new abc();
List<abc> Lst_CS = new List<abc>();
我在foreach
循环
foreach (blah blah)
{
cs = new abc{
No = VKNT,
GuidID=hdnGuidID.Value.ToString(),
RecID=hdnRecID.Value.ToString(),
Date=HdnDate.Value.ToString()
};
Lst_CS.Add(cs);
}
最后我得到了一个List_CS,我按照Date
的顺序由Lst_CS订购;
IEnumerable<abc> query = Lst_CS.OrderBy(l => l.Date).ToList();
但另外,我希望根据No
进行分组。
简单地说,我想按Date
订购,然后No
Lst_CS
分组,我该怎么办?
谢谢你的回答
答案 0 :(得分:1)
嗯,你只需按顺序进行排序,然后进行分组:
Lst_CS.OrderBy(l => l.Date)
.GroupBy(l => l.No)
.ToList();
每个组中的每个项目列表将按日期排序。 分组将按照按日期排序整个列表时的顺序排列。
您的ForEach
也可以在一个Linq语句中完成,然后与排序和分组相结合:
var query = blah.Select(b => new abc{
No = VKNT,
GuidID=hdnGuidID.Value.ToString(),
RecID=hdnRecID.Value.ToString(),
Date=HdnDate.Value.ToString()
})
.OrderBy(l => l.Date)
.GroupBy(l => l.No)
.ToList();