【发布时间】:2021-12-29 16:38:11
【问题描述】:
我有一个对象的集合
ObservableCollection<ISettingNode> nodes = new ObservableCollection<ISettingNode>() {
new Node("Node1", tabs1);
new Node("Node1", tabs2);
new Node("Node1", tabs3);
new Node("Node2", tabs4);
new Node("Node3", tabs5);
}
你能告诉我如何从这个集合中得到一个集合,其中所有具有相同名称的对象将被合并到一个对象中。就我而言,我希望将集合的前三个元素作为一个元素,就像 Node("Node1", tabs) where tabs equal tabs1 + tabs2 + tabs3? 所以结果是:
ObservableCollection<ISettingNode> nodes = new ObservableCollection<ISettingNode>() {
new Node("Node1", tabs);
new Node("Node2", tabs4);
new Node("Node3", tabs5);
}
我知道如何在没有 Linq 的情况下做到这一点,但它需要很多代码。我想使用 Linq 来获取它,但我不明白如何编写查询。
节点对象由简单的类表示:
public class SettingNode : ISettingNode
{
public string Name { get; private set; }
public IEnumerable<ISettingTab> Tabs { get; private set; }
}
【问题讨论】:
标签: c# linq collections