LINQ multiple columns

本文关键字:columns multiple LINQ | 更新日期: 2023-09-27 18:18:39

<root>
    <data1>
        <Element1>Value</Element1>
        <Element2>Value</Element2>
        <Element3>Value</Element3>
    </data1>
    <data2>
        <Element1>Value</Element1>
        <Element2>Value</Element2>
    </data2>
</root>

从上面的XML,我想使XML看起来像这样:

<root>
    <d1e1>value<d1e1>
    <d1e2>value<d1e2>
    <d2e1>value<d2e1>
</root>

处理这个问题最有效的方法是什么?理论上,Linq在大多数情况下应该更快,对于这个项目来说,速度是至关重要的

任何想法?

LINQ multiple columns

的想法是从Y池中选择X个节点,这里的示例经过简化以向您展示问题。一般来说,这就像我有一个多层次的xml,我需要扁平化,只有一个子层(又名根+ level1),但从源我只需要有我感兴趣的某些元素。

无论如何,这个问题已经解决了,因为我用foreach做了,因为我发现,如果你在xml中指定了一个schema,但不能访问LINQ,无论如何都不想工作。

解决方案是这样的:

  1. 我做了一个函数:

    public System.Xml.XmlElement GetSubElement(XmlElement Parent, string element)
    {
     System.Xml.XmlElement ret = null;
     if (Parent == null)
      return ret;
     XmlNodeList ContentNodes = Parent.GetElementsByTagName(element);
     if (ContentNodes.Count > 0)
     {
      XmlNode node = ContentNodes.Item(0);
      ret = (XmlElement)node;
     }
     return ret;
    }
    
  2. 我在重复

  3. 的区域上做了一个foreach循环
  4. 我从上面函数的重复上下文中得到了元素。

无论如何,我解决了这个问题。

编辑:不知道如何让这段代码正确显示,因为Ctrl+K似乎不这样做