首页 > 解决方案 > 我们可以使用 StringComparer 对包括特殊字符在内的所有类型的字符串进行排序吗?

问题描述

我曾经StringComparer.Ordinal对字符串列表进行排序。它对包含特殊字符的字符串进行排序,除了\\.
是否有任何其他选项可以在\\不编写用户定义代码的情况下进行排序?

尝试了以下代码:

Var string={"#a","\\b","c","1"}
Array.Sort(string,StringComparer.Ordinal)

我希望输出为

#a \\b 1 c

但实际输出是

#a 1 c \\b

标签: c#

解决方案


的code-point#是35,1是49,\是92,a//是b97/98/99c

输出来自:

var arr = new[] { "#a", "\\b", "c", "1" };
Array.Sort(arr, StringComparer.Ordinal);
Console.WriteLine(string.Join(" ", arr));

是:

#a 1 \b c

所以......它按预期工作,按它们的序数值对它们进行排序。


推荐阅读