我有课程列表以及如何拆分,分组?
class CLA
{
string GroupName;
double Class;
double Value;
}
...
public List<List<CLA>> Dividr (List<CLA> a)
{
List<List<CLA> Clist = new List<List<CLA>>();
Clist.Addrange(...) //Here
returnn Clist;
}
至于划分,它将被它的属性GroupName
,Class分割。
示例,如果元素具有相同的GroupName
和类,则它将是一个列表&lt;&gt;。
答案 0 :(得分:2)
只需使用GroupBy
即可。然后,正如您想要一个内部列表而不是IEnumerable
每个组使用ToList()
:
List<CLA> data = new List<CLA>();
var result = data.GroupBy(item => new { item.GroupName, item.Class })
.Select(group => group.ToList()).ToList();
除非出于特定原因,否则请考虑返回IEnumerable<IEnumerable<CLA>>
- 如果不需要,则羞于已经执行查询:
var result = data.GroupBy(item => new { item.GroupName, item.Class })
.Select(group => group);