C # .NET и коллекции прямых объектов - PullRequest
2 голосов
/ 28 сентября 2011

Привет, все, есть ли такой тип коллекции, как arrayList, к которому я могу добавить объект, используя идентификатор?

, так как заголовок моего поста предлагает коллекцию объектов Direct.так, например:

DirectCollection.addAt(23, someobject);

и

DirectCollection.getAt(23);

и т.д.ссылочный объект, и если у объекта есть идентификатор, подобный 23, мне нужно сгенерировать 22 другие записи, просто чтобы добавить его, что явно нецелесообразно.

в основном использует значение положения объекта в качестве уникального идентификатора.

Есть мысли?

Большое спасибо.

Ответы [ 5 ]

4 голосов
/ 28 сентября 2011

Вы можете использовать Dictionary<int, YourType> Как это:

var p = new Dictionary<int, YourType>();
p.Add(23, your_object);
YourType object_you_just_added = p[23];
2 голосов
/ 28 сентября 2011

Используйте словарь.

Dictionary<int, YourType>

Позволяет добавлять / получать / удалять элементы с заданным ключом и не непрерывными диапазонами.

2 голосов
/ 28 сентября 2011

Вы можете использовать Словарь

Код для вашего примера будет очень простым:

Dictionary<int, AType> directCollection = new Dictionary<int, AType>();
directCollection.Add(23, someObjectOfAType);
AType anObject = directCollection[23];
1 голос
/ 28 сентября 2011

Я думаю, что KeyedCollection или Dictionary - это то, что вам нужно.

0 голосов
/ 28 сентября 2011

Используйте 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"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...