You can modify the collation by region language.
classProgram {Static voidMain (string[] args) { string[] arr = {"Zhao (ZHAO)","Money (QIAN)","Sampathkumar (SUN)","Lee (LI)","Week (ZHOU)","Wu (WU)","鄭 (ZHENG)","King (Wang)"}; //pronunciation in lcid:0x00000804CultureInfo Pronoci =NewCultureInfo (2052); //Thread.CurrentThread.CurrentCulture = new CultureInfo ("en-us");Array.Sort (arr); Console.WriteLine ("Sort by pronunciation:"); for(inti = arr. Getlowerbound (0); I <= arr. GetUpperBound (0); i++) Console.WriteLine ("[{0}]:\t{1}", I, arr. GetValue (i)); Console.WriteLine (); //number of strokes lcid:0x00020804CultureInfo Strokci =NewCultureInfo (133124); Thread.CurrentThread.CurrentCulture=Strokci; Array.Sort (arr); Console.WriteLine ("Sort by Stroke:"); for(inti = arr. Getlowerbound (0); I <= arr. GetUpperBound (0); i++) Console.WriteLine ("[{0}]:\t{1}", I, arr. GetValue (i)); Console.WriteLine (); //zh-cn (pinyin: Simplified Chinese)Thread.CurrentThread.CurrentCulture =NewCultureInfo ("ZH-CN"); Array.Sort (arr); Console.WriteLine ("ZH-CN:"); for(inti = arr. Getlowerbound (0); I <= arr. GetUpperBound (0); i++) Console.WriteLine ("[{0}]:\t{1}", I, arr. GetValue (i)); Console.WriteLine (); //ZH-TW (Stroke number: in the complex)Thread.CurrentThread.CurrentCulture =NewCultureInfo ("ZH-TW"); Array.Sort (arr); Console.WriteLine ("ZH-TW:"); for(inti = arr. Getlowerbound (0); I <= arr. GetUpperBound (0); i++) Console.WriteLine ("[{0}]:\t{1}", I, arr. GetValue (i)); Console.readkey (); } }
Simple example of Chinese character sorting in C # (Pinyin/stroke)