2
我有一个IEnumerable项目,我想按关联的类别进行分组。这些项目按与它们关联的类别进行分组 - 这是一个列表 - 因此单个项目可能是多个类别的一部分。LINQ组项目。单个项目可能在几个组中
var categories = numbers.SelectMany(x => x.Categories).Distinct();
var query =
from cat in categories
select new {Key = cat,
Values = numbers.Where(n => n.Categories.Contains(cat))};
我用上面的代码,它实际上做的工作,但我想知道是否有这样做的,因为这种操作可能会执行缓慢,当数字包含数千个值的更有效的方式。
我几乎要求重构代码以提高效率。