//排序只带字符的数组,不带数字的
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]);
但是这样不对带有字符的字符排序。