【发布时间】:2011-05-10 11:26:33
【问题描述】:
我有人员对象,而人员有属性组,使他们属于不同的组。 我想获取 List 并将其放入一个对象 GrouppedPeople 中,其中将有 List coll。一个 coll 元素只包含属于同一组的人。
如果我有 3 个人:
List<People>(){new People{Name="Test", Group = "Group1"},
new People{Name="SameGroup", Group = "Group1"},
new People{Name="Other", Group = "OtherGroup"}}
我需要收集 2 个 GrouppedPeople。第一个将包含 Test 和 SameGroup,第二个将包含 Other(按 Group 属性分组)。我正在尝试使用 linq 来做到这一点。
我需要结果为 List 类型。 GrouppedPeople 是一个类,它只有一个 List 类型的属性,并且所有人员都来自同一个组。
我想出了这样的东西:
from oneGroup in mates
group oneGroup by oneGroup.pGroupName into g
select g;
它工作正常,但结果对象不是强类型的。我希望得到 List 作为结果。有没有办法从那个匿名对象类型中获取它?还有其他方法可以使用 linq 获得这一切并保持强类型吗?
【问题讨论】:
-
你不会失去强类型。匿名类型与名义类型一样强类型。他们只是没有名字,仅此而已。
-
你想要什么类型的列表?据我所知,您的现有代码中必须有 IEnumerable
>。 -
我想要列表
。 GrouppedPeople 是一个包含 List 的对象.
标签: linq group-by linq-to-objects