【知识点】
GroupBy为Linq命名空间下的方法
【定义实体类】
public class MyModel
{
public string code { get; set; }
public string name { get; set; }
}
public class MyGroupModel
{
public string code { get; set; }
public List<MyModel> list { get; set; }
}
【代码编写】
List<MyModel> _list = new List<MyModel>();
_list.Add(new MyModel() { name = "后端编程语言-C#", code = "001" });
_list.Add(new MyModel() { name = "后端编程语言-Java", code = "001" });
_list.Add(new MyModel() { name = "前端编程语言-Javascript", code = "002" });
_list.Add(new MyModel() { name = "前端编程语言-Php", code = "002" });
_list.Add(new MyModel() { name = "后端编程语言-python", code = "001" });
//直接使用var关键词获得分组后的对象
var groupListVar = _list.GroupBy(a => a.code);
foreach (var item in groupListVar)
{
var key = item.Key; //Key=code的值
var list = item.ToList(); //就是List<MyModel>
}
//通过自定义实体类获得分组后的对象
List<MyGroupModel> groupModel = _list.GroupBy(a => a.code).Select(b => new MyGroupModel() { code = b.Key, list = b.ToList() }).ToList();