排序一組陣列的時候    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());
創作者介紹
創作者 Jaosn的部落格 的頭像
Jason

Jaosn的部落格

Jason 發表在 痞客邦 留言(0) 人氣( 142 )