2008-11-09 65 views
4

儘管DataTable是一個內存管理器,但如果由於檢索時間爲O(1)而導致對象集合非常大,DataTable不會是實現和IdentityMap的最佳選擇嗎?實施身份地圖的最佳結構是什麼?

更新

如果我決定使用IDictionary的,我檢索對象時,我犧牲速度?

回答

5

任何Dictionary<,>SortedList<,>SortedDictionary<,>將是明顯的選擇 - 但請注意THA排序成爲這裏的一個問題... Dictionary<,>不保證任何特定的順序;另外兩個按鍵而不是按鍵排序。

請注意,字典不會與數據綁定非常好地播放。可能最好創建類似Collection<T>的東西,但是封裝了 a Dictionary<,>以進行查找。當然,這一切都取決於場景。

關於SortedList<,>等之間性能差異的更多信息可以參考here

1

我會更傾向於使用一個由字典< T,T >支持的自定義類比DataTable。據推測,這將建立在數據訪問層之上,可以使用LINQ或DataTable等訪問關係數據,但如果對象在自定義映射中可用,則至少要避免必須從關係數據中重新構建它數據。

相關問題