自然排序法運算子(F1,F2,F10,F11,F20...)

 //自然排序法運算子

    public class AlphaNumberSort : IComparer<string>

    {

        public int Compare(string x , string y)

        {

            StringComparer sc = StringComparer.CurrentCultureIgnoreCase;

            if (string.IsNullOrEmpty(x) || string.IsNullOrEmpty(y))

            {

                return x.CompareTo(y);

            }

            string numberX = FindTrailingNumber(x);

            string numberY = FindTrailingNumber(y);

            if (numberX != string.Empty && numberY != string.Empty)

            {

                //先比字母部份

                int stringCompareResult = sc.Compare(

                                                                    x.Remove(x.Length - numberX.Length) ,

                                                                    y.Remove(y.Length - numberY.Length)  );

                if (stringCompareResult != 0)

                {

                    return stringCompareResult;

                }

                //若字母相同,再比數值部份

                double dX = Convert.ToDouble(numberX);

                double dY = Convert.ToDouble(numberY);

                return dX.CompareTo(dY);

            }

            else

            {

                return sc.Compare( x , y );

            }

        }

留言

這個網誌中的熱門文章

溪和食品有限公司 - 觀光工廠接待人員(薪約30K.免費供餐),今天投遞此份工作。

載入JavaScript code的最佳時機