【问题标题】:How to sort numbers in C# XML?如何在 C# XML 中对数字进行排序?
【发布时间】:2013-06-18 21:13:45
【问题描述】:

我有以下 xml 代码:

    <highscore>
  <score>
    <naam>Pipo</naam>
    <punten>200</punten>
  </score>
  <score>
    <naam>Harry</naam>
    <punten>400</punten>
  </score>
</highscore>

如何按“punten”排序?所以最高的数字在上面?

谢谢!!

【问题讨论】:

  • 可能想发布您当前的 c# 代码现在的样子
  • 或者至少提供一个期望结果的例子。是 XML 吗?成绩单?完全不同的数据结构?
  • 它需要显示最高分。我有一个分数列表。

标签: c# xml sorting


【解决方案1】:
var xml=@" <highscore>
  <score>
    <naam>Pipo</naam>
    <punten>200</punten>
  </score>
  <score>
    <naam>Harry</naam>
    <punten>400</punten>
  </score>
</highscore>";

var doc = XDocument.Parse(xml);
var orderedScoreElements = 
      doc.Root
         .Elements("score")
         .OrderByDescending(e => (int)e.Element("punten"))
         .ToList();

并按顺序重写文档:

doc.Root.RemoveNodes();
doc.Root.Add(orderedScoreElements);

【讨论】:

  • 谢谢,但我需要把:doc.Root.RemoveNodes(); doc.Root.Add(orderedScoreElements); ?
【解决方案2】:
var xml = @"<highscore>
  <score>
    <naam>Pipo</naam>
    <punten>200</punten>
  </score>
  <score>
    <naam>Harry</naam>
    <punten>400</punten>
  </score>
</highscore>";

var x = XDocument.Parse(xml);
var elementsInOrder = x.Descendants("score").OrderByDescending(el=>Convert.ToInt32(el.Element("punten").Value));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 2022-01-06
    • 1970-01-01
    • 2023-02-13
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    相关资源
    最近更新 更多