C# 使用基于属性值的LINQ消除XML重复数据
我有这样一个XML:C# 使用基于属性值的LINQ消除XML重复数据,c#,xml,linq,linq-to-xml,C#,Xml,Linq,Linq To Xml,我有这样一个XML: <rewriteMaps> <rewriteMap name="RewritesInSightContentaltecNL"> <add key="/tata" value="/productdetails.aspx?id=1628" /> <add key="/tata" value="/productdetails.aspx?id=1628" /> <add key="/marc" val
<rewriteMaps>
<rewriteMap name="RewritesInSightContentaltecNL">
<add key="/tata" value="/productdetails.aspx?id=1628" />
<add key="/tata" value="/productdetails.aspx?id=1628" />
<add key="/marc" value="/productdetails.aspx?id=1626" />
<add key="/marc" value="/productdetails.aspx?id=1626" />
<add key="/marc" value="/productdetails.aspx?id=1626" />
<add key="/henk" value="/productdetails.aspx?id=162996" />
<add key="/henk" value="/productdetails.aspx?id=1aa6" />
<add key="/tata" value="/productdetails.aspx?id=1628" />
<add key="/tata" value="/productdetails.aspx?id=1628" />
<add key="/marc" value="/productdetails.aspx?id=1626" />
<add key="/marc" value="/productdetails.aspx?id=1626" />
<add key="/aaaa" value="/productdetails.aspx?id=xxxx" />
</rewriteMap>
</rewriteMaps>
我想从中删除基于“key”属性的重复值
因此,我想以:
<add key="/tata" value="/productdetails.aspx?id=1628" />
<add key="/marc" value="/productdetails.aspx?id=1626" />
<add key="/henk" value="/productdetails.aspx?id=162996" />
<add key="/aaaa" value="/productdetails.aspx?id=xxxx" />
非常感谢您的帮助。使用扩展方法。此方法将从文档中删除所有选定节点。请尝试此代码
xdoc.Root.Elements("add")
.GroupBy(s => (string)s.Element("value"))
.SelectMany(g => g.Skip(1)) // select all nodes from group except first one
.Remove();
这会给你
<add key="/tata" value="/productdetails.aspx?id=1628" />
<add key="/marc" value="/productdetails.aspx?id=1626" />
<add key="/henk" value="/productdetails.aspx?id=162996" />
<add key="/henk" value="/productdetails.aspx?id=1aa6" />
<add key="/aaaa" value="/productdetails.aspx?id=xxxx" />
你怎么了??你太对了,懒汉:编辑
<add key="/tata" value="/productdetails.aspx?id=1628" />
<add key="/marc" value="/productdetails.aspx?id=1626" />
<add key="/henk" value="/productdetails.aspx?id=162996" />
<add key="/henk" value="/productdetails.aspx?id=1aa6" />
<add key="/aaaa" value="/productdetails.aspx?id=xxxx" />