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# 中的重复节点 的相关文章

随机推荐

  • JavaFX 应该取代 Swing 吗?

    我习惯了 Swing 编程 也听说过 JavaFX 它是否应该取代 Swing 成为用 Java 编写桌面应用程序的首选平台 换句话说 我应该为我的新项目选择 JavaFX 吗 是的 JavaFX 正在取代 Swing 另请参阅Oracle
  • 文本字段、标签和按钮

    我在理解 GUI 以及为什么我的程序无法正常运行方面遇到了一些困难 是因为我必须扩展到 JFrame 类吗 这是一个代码 import java awt event ActionEvent import java awt event Act
  • 这个具有空捕获列表的 lambda 如何能够引用到达范围名称?

    在 C 14 标准 5 1 2 12 中 它显示了 lambda 表达式的示例 该表达式显然似乎能够引用到达范围的变量x 虽然 捕获列表为空 即没有捕获默认值 该评论说它 没有捕获x 这是例子 void f int const int 2
  • Emacs:定义命令输出的目标窗口

    我厌倦了 emacs 用它的输出来破坏我的窗口 而且是不可预测的 我想在 emacs 框架中有几个窗口 并且每个窗口仅用于特定目的 例如 ECB panels Editor 1 Editor 2 Bookmarks Messages out
  • Intellij 拒绝将 Kotlin 目标 jvm 设置为 1.8?

    ParallelStreams kts 41 15 error calls to static methods in Java interfaces are prohibited in JVM target 1 6 Recompile wi
  • 挂载Android模拟器创建的qcow2镜像

    我正在尝试挂载 Android 模拟器创建的 userdata qemu img qcow2 文件 以下过程不起作用 sudo qemu nbd c dev nbd0 android avd Pixel C API 27 avd userd
  • python optparse,如何在使用输出中包含附加信息?

    使用 python 的 optparse 模块 我想在常规使用输出下方添加额外的示例行 我当前的 help print 输出如下所示 usage check dell py options options h help show this
  • ES5 中的 Object.defineProperty?

    我看到关于 新 Object create 的帖子 它使枚举可配置 但是 它依赖于 Object defineProperty 方法 我找不到此方法的跨浏览器实现 我们是否还在为旧的 Object create 编写代码 我不能写在 IE6
  • 如何使用 C++ 对 Arduino 进行编程 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 最近我一直在摆弄我的 Arduino 我想知道是否有某种方法可以用 C 对 Arduino 进行编程 我一直在使用 C 对其进行编程加
  • ActiveCollab API 分页和速率限制

    我在以下位置找不到有关 API 分页或速率限制的信息 https developers activecollab com api documentation https developers activecollab com api doc
  • 如何在jquery mobile可折叠列表中添加多个图标

    我想在 jquery mobile 可折叠列表的加号图标附近添加另一个图标 但无法添加它 因为 jquery mobile 动态创建该图标 任何建议将不胜感激 这当然是一种 hack 但您可以等待页面初始化 然后找到列表视图小部件并将图标的
  • 使用 PowerShell 远程处理在活动用户会话中启动程序

    是否可以检测到特定用户在计算机上有一个打开的会话 并在该会话中打开一个进程 以便用户可以使用 PowerShell 远程处理与应用程序进行交互 我将如何检测哪些用户在计算机上打开了会话以及他们的状态 活动 空闲 断开连接等 我如何在其中一个
  • 如何在 Python 中将一维数组打印为网格?

    我有一个包含 200 个项目的数组 grid 0 0 0 0 0 0 0 0 0 0 0 0 0 0 and so on 我怎样才能像这样将它打印为二维数组 实际上每 10 个字符就分割一次 0 0 0 0 0 0 0 0 0 0 0 0
  • 如何防止 ReSharper 在添加 using 指令时缩短命名空间?

    当我使用 ReSharper 添加 using 指令 使用 Alt Enter 时 它会删除命名空间的 不必要 部分 我更喜欢使用完整的命名空间 这也是 Visual Studio 的行为 Example namespace MyCompa
  • CF8 和 AES 解密 MySQL AES:编码不同

    这已经成为一种练习 告诉我我做错了什么 而不是关键任务 但我仍然想看看我犯了什么 可能很简单 的错误 我正在使用 mysql 5 1 x AES ENCRYPT 来加密字符串 我正在使用 CF 的generateSecretKey AES
  • 如何提供要在 Google-Now-On-Tap 上显示的内容?

    背景 我正在开发一个可以回答某些查询 电话号码查询 也许还有其他查询 的应用程序 谷歌在 Android 6 上引入了一项新功能 称为 Google Now On Tap 又名 Assist API 它允许用户查询屏幕上显示的内容 通过长按
  • C# 中有“upto”方法吗?

    下面是一段打印 0 到 9 数字平方的代码 for int i 0 i lt 10 i Console WriteLine i i 通过 a 做从 0 到 N by 1 的事情for循环是一个非常常见的习惯用法 这是一个UpTo表达这一点的
  • 如何在不实际索引数组的情况下获取已知形状数组的索引元素数量?

    我有一个索引IDX 可以是索引列表 布尔掩码 切片元组等 索引一些已知形状的抽象 numpy 数组shape 可能很大 我知道我可以创建一个虚拟数组 对其进行索引并计算元素数 A np zeros shape print A IDX siz
  • 使用两个版本的 Python 安装 IPython (Windows)

    是否可以有IPython 0 12 安装在same系统有两个不同版本的 Python v 2 7 和 3 2 目前 我的系统上运行着两个版本的 Python 我使用两台机器 一台带有Windows 7 64 位 另一个XP SP2 32 位
  • Xml Linq,删除 XElement C# 中的重复节点

    我使用 Xml Linq 来管理 xml 配置文件 我有 XElement Company CalidadCodigo ParserSQL Reglas 我需要删除 XElement 中的重复值 节点 Add Key Value 其中值重复