Dot-Net
List<T> 是否保證項目將按照添加的順序返回?
是否
List<T>始終保證項目將按照枚舉時添加的順序返回?更新:感謝所有回答的人,讓我放心。我
List<T>用 .NET Reflector 快速瀏覽了這個類(可能一開始就應該這樣做),實際上底層儲存是一個T(T[]) 數組。
該列表是基於索引的,新項目將始終添加到列表的末尾。您可以在某個索引處插入項目,以便下一個項目將移動一個位置。
所以是的,你可以這樣安全地使用它……
List(T) 類是 ArrayList 類的通用等價物。它使用一個數組來實現 IList(T) 泛型介面,該數組的大小根據需要動態增加。
可以使用整數索引訪問此集合中的元素。此集合中的索引是從零開始的。
List(T) 不能保證被排序。在執行需要對 List(T) 進行排序的操作(例如 BinarySearch)之前,您必須對 List(T) 進行排序。
只要不修改集合,List(T) 可以同時支持多個讀取器。通過集合進行枚舉本質上不是執行緒安全的過程。在枚舉與一個或多個寫訪問競爭的極少數情況下,確保執行緒安全的唯一方法是在整個枚舉期間鎖定集合。要允許集合被多個執行緒訪問以進行讀寫,您必須實現自己的同步。
您可以在MSDN上閱讀有關它的更多資訊。