Xml Linq,删除 XElement C# 中的重复节点

2024-01-02

我使用 Xml.Linq 来管理 xml 配置文件。

我有 XElement (Company.CalidadCodigo.ParserSQL.Reglas),我需要删除 XElement 中的重复值(节点 Add-Key-Value,其中值重复)。

我用 Union 但不对。

var reglasComunes = reglasParaTarget.Union(reglasParaSecundario);

有关于它的示例代码吗?

 <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <section name="Company.CalidadCodigo.ParserSQL.Reglas" type="System.Configuration.NameValueSectionHandler" />
      </configSections>
      <appSettings></appSettings>
       <Company.CalidadCodigo.ParserSQL.Reglas>
    <add key="AnalisisSintactico" value="CalidadCodigo.ParserSQL.Reglas.AnalisisSintactico,CalidadCodigo.ParserSQL.AnalisisSintactico, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9744987c0853bf9e" />
    <add key="AnalisisRecomendaciones" value="CalidadCodigo.ParserSQL.Reglas.AnalisisRecomendaciones,CalidadCodigo.ParserSQL.AnalisisRecomendaciones, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9744987c0853bf9e" />
    <add key="FinFichero" value="CalidadCodigo.ParserSQL.Reglas.FinFichero,CalidadCodigo.ParserSQL.FinFichero, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9744987c0853bf9e" />
    <add key="CheckTree" value="CalidadCodigo.ParserSQL.Reglas.CheckTreeException,CalidadCodigo.ParserSQL.FinFichero, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9744987c0853bf9e" />
    <add key="AnalisisSintactico" value="CalidadCodigo.ParserSQL.Reglas.AnalisisSintactico,CalidadCodigo.ParserSQL.AnalisisSintactico, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9744987c0853bf9e" />
    <add key="Regla1" value="CalidadCodigo.ParserSQL.Reglas.Regla1,CalidadCodigo.ParserSQL.Regla1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9744987c0853bf9e" />
    <add key="Regla2" value="CalidadCodigo.ParserSQL.Reglas.Regla2,CalidadCodigo.ParserSQL.Regla2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9744987c0853bf9e" />
    <add key="CheckTree" value="CalidadCodigo.ParserSQL.Reglas.CheckTreeException,CalidadCodigo.ParserSQL.FinFichero, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9744987c0853bf9e" />

  </Company.CalidadCodigo.ParserSQL.Reglas>
    </configuration>

以下为您提供不同的行。

XDocument doc = new XDocument(new XElement("doc"
    , new XElement("add", new XAttribute("value", "11"))
    , new XElement("add", new XAttribute("value", "23"))
    , new XElement("add", new XAttribute("value", "22"))
    , new XElement("add", new XAttribute("value", "22"))
    , new XElement("add", new XAttribute("value", "22"))
    , new XElement("add", new XAttribute("value", "11"))));

//Select Distinct Rows, gives 11,23,22
var result =
    from row in doc.Descendants("add")
    group row by (string)row.Attribute("value") into g
    select g.First();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xml Linq,删除 XElement C# 中的重复节点 的相关文章