模型代碼
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
}
結果