如何解决LINQ分组依据
我有类似的类对象列表
public class MyClass
{
public int UserId { get; set; }
public int ItemId { get; set; }
public string ItemName { get; set; }
}
我有此列表,我想按UserId将它们分组。我得到的结果是List<MyClass>
组,其中每个列表都是由用户
我已按该组应用该分组,但不确定选择应如何
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"},ItemName = "ABweweC"}
};
在这里,我希望有两组List<MyClass>
,一组用户ID为100,另一组用户ID为150,每个列表将有2个类对象
解决方法
您可以使用UserId
作为关键字来创建字典:
var groups = items.GroupBy(c => c.UserId)
.ToDictionary(g => g.Key,g => g.ToList());
例如,以下内容:
Console.WriteLine(String.Join(Environment.NewLine,groups[100]));
将打印出:
100 245 ABC
100 125 ABCff
100 233 ABweweC
,
我认为您在此之后会给您List<List<MyClass>>
var group = items.GroupBy(g => g.UserId).Select(s => s.ToList());
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。