【发布时间】:2015-05-18 01:30:34
【问题描述】:
我正在尝试学习高级 LINQ 技术,那么我们如何才能实现(如果可能)仅使用 LINQ 来选择集合的不同项目并将它们的子项目合并到字典/结构或动态 ExpandoObject 中?
假设我有这两个类:
public class TestItem
{
public int Id;
public string Name;
public List<TestSubItem> SubItems;
}
public class TestSubItem
{
public string Name;
}
我如何创建一个 LINQ 查询(如果可能,再次)以根据 Name 属性选择所有不同的 TestItem,并且如果两次发现相同的 TestItem 具有相同的名称以在最终结果中合并两个 List?
我知道我可以通过执行以下代码来选择不同的 TestItem,但我被困在那里:
var result = items.GroupBy(item => item.Name)
.ToList();
提前致谢!
【问题讨论】:
-
您能提供样本数据和想要的结果吗?
-
在合并步骤中,您可以丢失一些 ID?
-
是的,它用于显示目的。
-
您想要一本字典,还是只想合并同名列表?如果是字典,键是名称,值是合并列表?
-
正是我想要的。