汉字的排序(C#)
作者 jlgzw
汉字可以有两种排序方法。发音排序(默认)和按笔画数排序。
当使用区域性名称(如“zh-CN”)创建 CultureInfo 时,使用的是默认排序顺序。
若要指定排序顺序,应该使用特定的 LCID 来创建 CultureInfo 对象。
下面是一个示例:
using System;
using System.Globalization;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string[] arr = {"阿尔巴尼亚", "一刀切"};
//发音 LCID:0x00000804
CultureInfo PronoCi = new CultureInfo(0x00000804);
Array.Sort(arr);
Console.WriteLine("按发音排序:");
for (int i = arr.GetLowerBound(0); i <= arr.GetUpperBound(0); i++)
Console.WriteLine("[{0}]:/t{1}", i, arr.GetValue(i));
Console.WriteLine();
//笔画数 LCID:0x00020804
CultureInfo StrokCi = new CultureInfo(0x00020804);
Thread.CurrentThread.CurrentCulture = StrokCi;
Array.Sort(arr);
Console.WriteLine("按笔划数排序:");
for (int i = arr.GetLowerBound(0); i <=arr.GetUpperBound(0); i++)
Console.WriteLine("[{0}]:/t{1}", i, arr.GetValue(i));
}
}
}
输出:
按发音排序:
[0]: 阿尔巴尼亚
[1]: 一刀切
按笔划数排序:
[0]: 一刀切
[1]: 阿尔巴尼亚