我有一个 IEnumerable 项目,我想按相关类别进行分组。这些项目按与其关联的类别(即列表)进行分组,因此单个项目可能是多个类别的一部分。
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))};
我使用上面的代码,它确实有效,但我想知道是否有更有效的方法来执行此操作,因为当数字包含数千个值时,此操作可能会执行缓慢。
我几乎要求重构代码以提高效率。