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())
……..
不如回避掉吧
……
if (x.CompareTo(y) == 0) return 0; //假如是本人与本人比较
if ((int)x.First() == (int)y.First())
……..