假设我有一个相当大的 IList<foo>
在哪里 foo
看起来像这样:
public class foo
{
public string Region { get; set; }
public string Territory { get; set; }
public string Location { get; set; }
public string Person { get; set; }
}
...有没有办法,使用一个相当快速/有效的表达,将这些 foo 项目“分组”
Region
,所以我最终可能会得到 IDictionary<string, IList<foo>>
并拥有 string
关键是Region
属性(property),每个下属 IList<foo>
仅包含 foo
与该地区匹配的记录? (它不一定是 IDictionary
,这只是为了说明我正在尝试做的事情的要点。)我想向我的 MVC View 呈现一个交互式列表,以这种方式组织,而不必写一些东西比较复杂还是使用第三方库。
最佳答案
是的 - 你想要一个 Lookup
:
var lookup = list.ToLookup(x => x.Region);
您可以通过分组来创建字典,但我个人更喜欢使用查找,因为它是专门为“单键多值”场景设计的。
关于c# - 用于组织的 Linq 表达式(类似于 Group By 但不同),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7940070/