C#字符串數組排序


//排序只帶字符的數組,不帶數字的
private   string[]   aa   ={ "a ", "c ", "b "}; 
Array.Sort(aa); 
    MessageBox.Show(aa[0]); 
    MessageBox.Show(aa[1]); 
    MessageBox.Show(aa[2]); 

結果是:a,b,c

如果想實現

Array.Sort(arr);
不對!!!!!!!!!!
比如:   A1,A2,A10
用Array.Sort(arr);排出來就是
A1,A10,A2
而我要的是
A1,A2,A10

這樣就可以了: 
public   class   CustomComparer:System.Collections.IComparer 
{ 
public   int   Compare(object   x,   object   y){ 
string   s1   =   (string)x; 
string   s2   =   (string)y; 
if   (s1.Length   >   s2.Length)   return   1; 
if   (s1.Length   <   s2.Length)   return   -1; 
for   (int   i   =   0;   i   <   s1.Length;   i++)   { 
if   (s1[i]   >   s2[i])   return   1; 
if   (s1[i]   <   s2[i])   return   -1; 
} 
return   0; 
} 
} 

應用: 
string[]   str   =   new   string[]{ "A1 ", "A2 ", "A10 "}; 
Array.Sort(str,   new   CustomComparer()); 
for   (int   i   =   0;   i   <   str.Length;   i++) 
Console.WriteLine(str[i]);

 但是這樣不對帶有字符的字符排序。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM