我有一个通用列表并已完成
mylist.Sort(Comparison<TypeA>(delegate(TypeA a, TypeA b)
{ return a.Text.CompareTo(b.Text)) }
完成上述操作后,我会mylist.Add(someObject)
。它的Text
属性以“T”开头。列表中还有一个以"V"
开头的项目。它不是最后添加的someObject,而是在以"V"
开头的项目之前。这让我觉得这种情况继续适用。是这样的吗?
如果是这样,我该如何添加这个新项目?
答案 0 :(得分:5)
这绝对是错误的。 List<>.Sort
执行一次排序,添加其他项目会将它们添加到最后。
仅当mylist
为SortedList
或类似内容时,才会出现此行为。如果您没有自己初始化它,则应检查运行时类型,因为即使编译时类型可能是IList
,您可能会得到SortedList
。但这不太可能。