将项目添加到列表<>对它进行排序?

时间:2011-12-01 23:10:47

标签: c# .net sorting

我有一个通用列表并已完成

mylist.Sort(Comparison<TypeA>(delegate(TypeA a, TypeA b)
{ return a.Text.CompareTo(b.Text)) }

完成上述操作后,我会mylist.Add(someObject)。它的Text属性以“T”开头。列表中还有一个以"V"开头的项目。它不是最后添加的someObject,而是在以"V"开头的项目之前。这让我觉得这种情况继续适用。是这样的吗?

如果是这样,我该如何添加这个新项目?

1 个答案:

答案 0 :(得分:5)

这绝对是错误的。 List<>.Sort执行一次排序,添加其他项目会将它们添加到最后。

仅当mylistSortedList或类似内容时,才会出现此行为。如果您没有自己初始化它,则应检查运行时类型,因为即使编译时类型可能是IList,您可能会得到SortedList。但这不太可能。