案例"/>
c# Linq GroupBy数据分组,实现分组查询,带案例
模型代码
public class UserInfo{public int id { set; get; }public string name { set; get; }public int typeid { set; get; }}
业务代码
public static void Run(){#region 准备数据List<UserInfo> intlist1 = new List<UserInfo>();intlist1.Add(new UserInfo(){id = 1,name = "name1",typeid = 1});intlist1.Add(new UserInfo(){id = 2,name = "name2",typeid = 1});intlist1.Add(new UserInfo(){id = 3,name = "name3",typeid = 1});List<UserInfo> intlist2 = new List<UserInfo>();intlist1.Add(new UserInfo(){id = 3,name = "name3",typeid = 1});intlist1.Add(new UserInfo(){id = 4,name = "name4",typeid = 4});intlist1.Add(new UserInfo(){id = 5,name = "name5",typeid = 5});intlist1.AddRange(intlist2);#endregionConsole.WriteLine("【原始数据】");foreach (var item in intlist1){Console.WriteLine($"intlist1--id{item.id}|name:{item.name}|type:{item.typeid}");}#region 数据分组1Console.WriteLine("、、、、、、、、、【数据分组1】、、、、、、、、、");var _uGroupByList = intlist1.AsQueryable().GroupBy(userinfo => userinfo.typeid,(userinfo) => new UserInfo{id = userinfo.id,name = userinfo.name,typeid = userinfo.typeid} //通过函数对每个组的元素进行投影。);Console.WriteLine($"第一个分类ID:{_uGroupByList.ToList()[0].Key}");//第一个分类ID下的第一条数据UserInfo oneUserInfoData = _uGroupByList.ToList()[0].ToList()[0];Console.WriteLine($"第一个分类ID下的第一条数据:{oneUserInfoData.id}--{oneUserInfoData.name}");foreach (var items in _uGroupByList){Console.WriteLine($"分类ID:{items.Key}");foreach (var item in items){Console.WriteLine($"_uList(GroupBy)--id:{item.id}--name{item.name}");}}#endregion}
结果
【原始数据】
intlist1--id1|name:name1|type:1
intlist1--id2|name:name2|type:1
intlist1--id3|name:name3|type:1
intlist1--id3|name:name3|type:1
intlist1--id4|name:name4|type:4
intlist1--id5|name:name5|type:5
、、、、、、、、、【数据分组1】、、、、、、、、、
第一个分类ID:1
第一个分类ID下的第一条数据:1--name1
分类ID:1
_uList(GroupBy)--id:1--namename1
_uList(GroupBy)--id:2--namename2
_uList(GroupBy)--id:3--namename3
_uList(GroupBy)--id:3--namename3
分类ID:4
_uList(GroupBy)--id:4--namename4
分类ID:5
_uList(GroupBy)--id:5--namename5
更多推荐
c# Linq GroupBy数据分组,实现分组查询,带案例
发布评论