C# 任何确认Array.Sort(charArray,StringComparer.Ordinal)工作的引用?
我想根据字符在Unicode表中的顺序位置(代码点)对字符数组进行排序 我发现以下代码是有效的: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
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)?