【发布时间】:2020-12-01 02:11:59
【问题描述】:
我有类似的类对象列表
public class MyClass
{
public int UserId { get; set; }
public int ItemId { get; set; }
public string ItemName { get; set; }
}
我有这个列表,我想按 UserId 对它们进行分组。我追求的结果是List<MyClass> 的集合,其中每个列表都由用户列出
我已经应用了 group by 但不确定应该如何选择
var group = items.GroupBy(g => g.UserId).
Select(s=> new MyClass {
UserId = s.Key,
}).ToList();
样本数据
var items = new List<MyClass>
{
new MyClass{UserId = 100, ItemId = 245, ItemName = "ABC"},
new MyClass{UserId = 100, ItemId = 125, ItemName = "ABCff"},
new MyClass{UserId = 150, ItemId = 233, ItemName = "AweBC"},
new MyClass{UserId = 100, ItemId = 233, ItemName = "ABweweC"}
};
在这里,我希望有两组 List<MyClass> 一个用户 ID 为 100 的列表和另一个用户 ID 为 150 的列表,每个列表将有 2 个类对象
【问题讨论】:
-
输出应该如何?用户 ID,列表
? -
不,只是
List<MyClass> -
那么你可以通过
UserId订购当前items,这样你所有具有相同UserId的记录都将在同一个组中 -
我已经用示例数据和预期结果更新了问题
-
你想要列表
- > ?