Code Bye

net framework 4.0 自定义Sort排序问题

class Program
    {
        static void Main(string[] args)
        {
            List<string> list = new List<string>();
            list.Add("1474");
            list.Add("1.1");
            list.Add("881");
            list.Add("wg");
            list.Add("d90");
            list.Add("json");
            list.Sort(new ASCIIStringCompare());
        }
    }
    public class ASCIIStringCompare : IComparer<string>
    {
        public int Compare(string x, string y)
        {
            if (x.Length==0)
            {
                return -1;
            }
            if (y.Length==0)
            {
                return 1;
            }
            if ((int)x.First()==(int)y.First())
            {
              return  Compare(x.Substring(1), y.Substring(1));
            }
            return ((int)x.First()).CompareTo((int)y.First());
        }
    }

4.0结果

4.5结果

那么,原因是项目是4.0的,怎么样在4.0下实现4.5情况下的结果

解决方案

40

本人也说不清楚,也没观察到本人与本人比较时有什么异常
不如回避掉吧
……
if (x.CompareTo(y) == 0) return 0; //假如是本人与本人比较
if ((int)x.First() == (int)y.First())
……..

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明net framework 4.0 自定义Sort排序问题