C# & Linq:根据值列表对列表成员进行分组
我有一个对象列表,其中所有对象都公开 IList 类型的属性。 现在我想按该列表的值对该列表进行分组。举例来说:
OB1: Property is A, B, C
OB2: Property is D, C, E
OB3: Property is B, E, C
作为输出,我想考虑
A: OB1
B: OB1, OB3
C: OB1, OB2, OB3
D: OB2
E: OB2, OB3
一个方便的 LINQ 表达式来解决这个问题,但如果可能的话,它找不到任何参考。当然,我可以用循环来实现它......但我很好奇这是否可以用 LINQ 实现。
谢谢
I have a list of object which all expose a property of type IList.
Now I want to group this list by the values of that list. So let say for example:
OB1: Property is A, B, C
OB2: Property is D, C, E
OB3: Property is B, E, C
As output I would like to have
A: OB1
B: OB1, OB3
C: OB1, OB2, OB3
D: OB2
E: OB2, OB3
I thought about a convenient LINQ expression to solve this, but it could not find any reference if it is possible at all. Of cause I can to it with loops... but I'am curious if it is possible with LINQ.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
LINQPad 的示例:
Sample for LINQPad:
假设这样的结构:
您可以编写以下查询理解:
如果您想直接映射到对象,而不仅仅是它们的名称,请改为执行以下操作:
Assuming a structure like this:
You can write the following query comprehension:
If you want to map directly to objects, not just their names, do this instead:
您可以尝试:
You can try: