Случайная вставка, Случайная выборка C # Коллекция - PullRequest
0 голосов
/ 22 августа 2011

Мне нужна коллекция C #, из которой я могу как можно быстрее выбрать случайный элемент, но также добавить новые элементы. Это для мешка с письмом. Какой из них мне следует использовать?

Ответы [ 4 ]

4 голосов
/ 22 августа 2011

Вы можете использовать List<T>. Это зависит от того, что вы хотите сохранить в этом списке.

2 голосов
/ 22 августа 2011

Словарь

Универсальный класс Dictionary обеспечивает сопоставление набора ключей с набором значений.Каждое дополнение к словарю состоит из значения и связанного с ним ключа. Получение значения с использованием его ключа очень быстро, близко к O (1) , потому что класс Dictionary реализован в виде хеш-таблицы.

Редактировать: Хорошо, я думалвам нужно указать ключи или что-то.

Что не так с List <>?

2 голосов
/ 22 августа 2011

Все, что реализует IList (или, более вероятно, IList<T>), так как на них может ссылаться индекс. Очень просто выбрать случайное число в диапазоне 0 < n < list.Count-1 и получить этот элемент из списка.

например, /

// assumes 'random' is an instance of System.Random
myRandomElement = myList[random.Next(0,myList.Count-1)]
0 голосов
/ 22 августа 2011

Если вы хотите скорость, я предлагаю Dictionairy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...