日期:2014-05-18  浏览次数:20743 次

请问,SortedList集合键的限制
SortedList我试了一下,键可以是数字,Add的时候,会根据键进行自动排序。键也可以是string,虽然不能排序,但不报错。
可是如果键是list类型,要报错,这是为什么啊?
下面的代码报错----“未能比较数组中的两个元素”

public static void Main(string[] args)
  {
  SortedList<List<string>, string> dic = new SortedList<List<string>, string>();
  dic.Add(new List<string>{"大概","地方"}, "hh");
  dic.Add(new List<string> { "刚刚", "很久很久" }, "hh");  
  Console.ReadKey();
  }



但是,下面的代码却是正确的,为什么啊

public static void Main(string[] args)
  {
  SortedList<string, string> dic = new SortedList<string, string>();
  dic.Add("大概", "hh");
  dic.Add( "刚刚", "hh");
  Console.ReadKey();
  }

------解决方案--------------------
键是list类型?这个倒没见过,默认不允许吧。这样写比较的规则是什么?必须至少有一个对象实现 IComparable
------解决方案--------------------
探讨
字符串能排序吗?

------解决方案--------------------
字符串可以排序

------解决方案--------------------
string 可以排序,按照ascii码排的。