在使用整数值对字符串列表进行排序时,我遇到了一个奇怪的问题.但是,某些值可能会以某些字符作为前缀.
例如
// B1, 5, 50, A10, 7, 72, B3, A1, A2
Run Code Online (Sandbox Code Playgroud)
基本上有页码,应按如下方式排序:
// A1, A2, A10, B1, B3, 5, 7, 50, 72
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用默认字符串排序,那么这些将被排序为
// A1, A10, A2, B1, B3, 5, 50, 7, 72
Run Code Online (Sandbox Code Playgroud)
C#中的任何解决方案?
我想用LINQ对XML文件进行排序.XML在下面,仅是一个示例.通常它更大更复杂.XML应按标题升序排序.不是整个XML,而是每个parentNode本身.叶子总是在底部.文件夹或非叶子位于顶部.以下XML已经结构良好,但标题的顺序错误.排序算法还应该替换错误定位的非叶节点.我已经有一些代码可以完成这项工作,但我想知道是否有更优雅或更短的方式.目前我必须调用函数递归来进行转换.也许这可以用另一种方式完成.谢谢.
刘若英
这是我的XML:
<Node title="text99" leaf="no">
<Node title="text98" leaf="no">
<Node title="text97" leaf="no">
<Node title="text96" leaf="yes"/>
<Node title="text95" leaf="yes"/>
</Node>
<Node title="text94" leaf="no">
<Node title="text93" leaf="yes"/>
<Node title="text92" leaf="yes"/>
</Node>
<Node title="text91" leaf="yes"/>
<Node title="text90" leaf="yes"/>
</Node>
<Node title="text89" leaf="no">
<Node title="text88" leaf="no">
<Node title="text87" leaf="yes"/>
<Node title="text86" leaf="yes"/>
</Node>
<Node title="text85" leaf="no">
<Node title="text84" leaf="yes"/>
<Node title="text83" leaf="yes"/>
</Node>
<Node title="text82" leaf="yes"/>
<Node title="text81" leaf="yes"/>
</Node>
<Node title="text80" leaf="no">
<Node title="text79" leaf="no">
<Node title="text78" leaf="no">
<Node title="text78" leaf="yes"/>
<Node title="text77" …Run Code Online (Sandbox Code Playgroud)