2011-09-28 59 views
2

嘿所有有沒有像arrayList的集合類型,我可以添加一個對象使用ID?C#.NET和直接對象集合

有效地作爲我的帖子的標題sugests直接對象集合。因此,例如:

DirectCollection.addAt(23, someobject); 

DirectCollection.getAt(23); 

等等等等

我知道數組列表是在這種情況下可使用的,但我有,以產生具有一個空引用對象,並且如果當初始條目對象有一個像23這樣的ID,我必須生成22個其他條目來添加它,這顯然是不切實際的。

基本上使用對象位置值作爲唯一的ID。

有什麼想法?

非常感謝。

+0

@Marco我總是逗得這些 「接我,接我!」註釋! – Kevek

+0

@Marco我認爲在居高臨下和歡迎之間有一個平衡點,雖然你的意圖可能會有所幫助,但它似乎在居高臨下的方面有所降低。 (當然,你的回覆是非常居高臨下的)Gelion已經成爲會員11天了,他的檔案顯示沒有跡象表明他忽略了選擇接受答案。也許如果他有幾個優秀的回答問題,你的觀點會多一點。 – Kevek

回答

4

你可以使用Dictionary<int, YourType> 像這樣:

var p = new Dictionary<int, YourType>(); 
p.Add(23, your_object); 
YourType object_you_just_added = p[23]; 
2

你可以使用一個Dictionary

爲您的示例代碼將是非常簡單的:

Dictionary<int, AType> directCollection = new Dictionary<int, AType>(); 
directCollection.Add(23, someObjectOfAType); 
AType anObject = directCollection[23]; 
1

我認爲KeyedCollection或字典是你需要的。

2

使用字典。

Dictionary<int, YourType> 

它允許你添加/獲取/刪除與給定的密鑰和非連續範圍的項目。

0

使用System.Collections.Hashtable。它允許存儲異構類型的對象(一個Hashtable可以容納多種類型的對象)。

例子:

System.Collections.Hashtable keyObjectMap = new System.Collections.Hashtable(); 
//Add into Hashtable 
keyObjectMap["Key_1"] = "First String"; 
keyObjectMap["Key_2"] = "Second String"; 
//Add the value type 
keyObjectMap["Key_3"] = 1; 
keyObjectMap["Key_4"] = new object(); 

//Get value/object from Hashtable 
string value = (string)keyObjectMap["Key_2"]; 
int intValue = (int)keyObjectMap["Key_3"];