漢字的排序(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]: 阿爾巴尼亞