排序一組陣列的時候 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;
}
}
調用方法:
Array.Sort(arr, new CustomComparer());
請先 登入 以發表留言。