根据属性对 XmlNodeList 排序

Ger*_*orm 6 c# xml

我有一个XmlNodeList,其中包含来自以下 XML 示例根目录的数据包(项目)。我想根据节点的键属性值对 XmlNodeList 进行排序。排序必须非常有效,每一毫秒都很重要。

你有什么主意吗?

<root>
    <item key="1000000020">
        Content 20
    </item>
    <item key="1000000001">
        Content 1
    </item>
    ...
    <item key="1043245231">
        Content n
    </item>
</root>
Run Code Online (Sandbox Code Playgroud)

编辑:我已经有一个从项目构造的 XmlNodeList。我无法再访问 XmlDocument,只能访问项目列表。

Ger*_*orm 0

我以一种非常不优雅的方式解决了这个问题:

  • 我迭代了我的XmlNodeList
  • 在迭代期间我提取了时间戳
  • 提取时间戳后,我将时间戳 XmlElement 添加到 SortedDictionary
  • 将 SortedDictionary 转换为列表 ( sortedKeys =sortedByDateDisctionary.Keys.ToList(); )
  • 如果节点需要降序排序,则sortedKeys.Reverse();
  • 然后可以通过排序后的键来访问节点