模型代码
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);
#endregion
Console.WriteLine("【原始数据】");
foreach (var item in intlist1)
{
Console.WriteLine($"intlist1--id{item.id}|name:{item.name}|type:{item.typeid}");
}
#region 数据分组1
Console.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