我看到如果我要对自定义类进行排序,那么我必须实现IComparable接口。 但在这种情况下,我无法控制“字符串类”。
谢谢。
答案 0 :(得分:4)
使用List代替ArrayList来阻止cating,但在所有mylist.Sort()
{{1}}和Array List Sort Method
答案 1 :(得分:2)
有overload of the Sort
method允许您指定要使用的IComparer
。
答案 2 :(得分:2)
请参阅:http://msdn.microsoft.com/en-us/library/8k6e334t.aspx
// Sorts the values of the ArrayList.
theArrayList.Sort();
答案 3 :(得分:1)
您出于某种原因使用ArrayList
吗?它是预先通用的遗留集合,并且已被List
替换为所有意图和目的。如果您正在使用列表,那么您可以使用sort()
方法,它将为您处理所有内容。
答案 4 :(得分:1)
首先,我建议使用List<string>
代替ArrayList
。这将为您提供一个“正常工作”的.Sort()
方法。
否则,您可以使用LINQ从ArrayList执行此操作,如:
// This makes a new List<T>
var sorted = arrayList.Cast<string>().OrderBy(s => s).ToList();
使用ArrayList.Sort会更有效率,它会排序到位而不是复制......
arrayList.Sort();