Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 任何确认Array.Sort(charArray,StringComparer.Ordinal)工作的引用?_C#_Stringcomparer - Fatal编程技术网

C# 任何确认Array.Sort(charArray,StringComparer.Ordinal)工作的引用?

C# 任何确认Array.Sort(charArray,StringComparer.Ordinal)工作的引用?,c#,stringcomparer,C#,Stringcomparer,我想根据字符在Unicode表中的顺序位置(代码点)对字符数组进行排序 我发现以下代码是有效的: char[] charArray = new[] { 'h', 'e', 'l', 'l', 'o' }; Array.Sort(charArray, StringComparer.Ordinal); 但它看起来有点奇怪。首先,因为这两个参数都是非泛型的,其次,这里我使用StringComparer来比较字符 这保证有效吗?有任何参考吗?OrderBy(chr=>chr)起作用char是IComp

我想根据字符在Unicode表中的顺序位置(代码点)对字符数组进行排序

我发现以下代码是有效的:

char[] charArray = new[] { 'h', 'e', 'l', 'l', 'o' };
Array.Sort(charArray, StringComparer.Ordinal);
但它看起来有点奇怪。首先,因为这两个参数都是非泛型的,其次,这里我使用StringComparer来比较字符


这保证有效吗?有任何参考吗?

OrderBy(chr=>chr)
起作用
char
IComparable
,该可比较定义比较字符的整数/序数值。

StringComparer
在给定示例中,只需将比较卸载到
IComparable.CompareTo
()。您也可以使用默认比较器。@PetSerAl哇,多么糟糕的API设计啊。如果使用非字符串调用StringComparer,则会失败。因此我猜答案是:这可以工作,但不能这样做。好吧,那么,根据字符的序号(Unicode码点数)对字符数组进行排序的正确方法是什么<代码>.OrderBy(chr=>chr)<代码>数组.排序(charArray)?