C#最高字符串

这似乎是微不足道的,但我没有找到谷歌的答案。

我在一个排序的字符串列表的末尾为一个信号量的字符串设置了一个高值。

在我看来,char.highest.ToString()应该这样做 – 但这比较低,而不是高。

显然,创建一个尽可能高的字符串是不可能的,因为它总是低于相同的东西+更多的数据,但我正在排序的字符串都是有效的路径名,因此使用的符号受到约束。

回应评论:

在Delphi的前unicode时代,我只会使用#255。 我只想要一个比任何可能的路径名更高的字符串。 这应该是微不足道的 – 为什么不是?

回应#2:

这不是需要哨兵的排序,而是之后的处理。 我有多个列表,我合并(简单的合并不会完成工作。)我要么重复代码,要么我有虚拟值,总是比较高。

最高字符的字符串表示只有一个字符长。

你为什么不在排序之后将它作为信号量附加,而不是试图让它成为事后排序的东西?

或者,您可以指定自己的比较器,在任何其他字符串之后对您的令牌进行排序,否则调用默认比较器。

尝试将空值放在LINQ OrderBy()语句的列表底部时,我遇到了同样的问题。 我最终用…

 Char.ConvertFromUtf32(0x10ffff) 

…这是一种享受。

像这样的东西?

 public static String Highest(this String value) { Char highest = '\0'; foreach (Char c in value) { highest = Math.Max(c, highest); } return new String(new Char[] { highest }); }