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]);

 但是这样不对带有字符的字符排序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值