在使用笔划排序时,以笔划横坚捌捺折顺序,笔划数从少到多进行排序。下面是测试代码:
static void Main(string[] args)
{
string[] strs = new string[] {
"丁建华(回族)", "王桂林","王淑平",
"王文杰(回族)","丁建一","邓毛颖",
"王志雄","丁建","王燕菲","冯志强",
"冯建标","丁建辉","冯成标"
};
Console.WriteLine("===原记录=======");
foreach (String str in strs)
{
Console.WriteLine(str);
}
Console.WriteLine();
Array.Sort<String>(strs, new HanziComparer());
Console.WriteLine("===排序后=======");
foreach (String str in strs)
{
Console.WriteLine(str);
}
Console.ReadLine();
}
public class HanziComparer : IComparer<String>
{
public int Compare(String x, String y)
{
//设置汉字比较方式
CultureInfo culture = new CultureInfo(0x00020804);
//按照笔画顺序比较两个字符串
return string.Compare(x, y, true, culture);
}
}
输出结果
===原记录=======
丁建华(回族)
王桂林
王淑平
王文杰(回族)
丁建一
邓毛颖
王志雄
丁建
王燕菲
冯志强
冯建标
丁建辉
冯成标
===排序后=======
丁建
丁建一
丁建华(回族)
丁建辉
王文杰(回族)
王志雄
王桂林
王淑平
王燕菲
邓毛颖
冯成标
冯志强
冯建标