【发布时间】:2016-11-03 16:26:07
【问题描述】:
我在DataTable 中插入了一个特殊(摘要)行,我希望它在排序后的DataView 中出现在最后。我知道DataView 正在按特定字符串列进行排序(升序),并且出于显示目的,摘要行的该列中显示的值无关紧要。
我可以在该字段中放置什么字符串以确保我的摘要行被排序到最后?对于几乎任何其他数据类型的列,我可以使用T.MaxValue,但遗憾的是没有System.String.MaxValue 常量。
我已经试过了
footerRow[colGrouping] = "\uFFFF";
但排在最前面! (DataView 排序是按字典顺序排列的,而不是基于代码点的数值)
【问题讨论】:
-
字典顺序将取决于文化,因此在一般情况下这可能很难做到。但是,someone reckons you can use
U+E83A -
也许你知道其他字符串是什么文化\语言?
-
为什么不把它放在最后一列而不是最后一行?
-
@BenVoigt 好吧,你说得有道理,我的建议很愚蠢。您是否将此数据视图提供给网格或类似的东西?为什么不只是添加新的网格/表格并为其提供摘要行。按一些 magic string 排序听起来很 hacky。
-
这听起来从一开始就是个坏主意。我希望表中的数据是表中的数据,而不是表中的数据加上其他一些特殊的东西。我会更倾向于通过将数据和特殊的东西分开,对数据进行排序,并将特殊的东西连接到最后来解决问题。
标签: c# .net string sorting lexicographic