Обеспечивает возврат уникальных индексов
Конструктор
RandomUnique(System.Random argRnd)
При создании нужно передать объект System.Random.
Свойство
int UsedCount
Сколько индексов уже расходавано.
IdKey
Dictionary
Словарь соответствий индекс-ключ.
KeyId
Dictionary
Словарь соответствий ключ-индекс.
Методы
Get
int Get(int argMax, GetInt getInt = null)
Получить новый неиспользованный индекс, с максимально возможным (argMax). По умолчанию, для получения нового индекса используется rnd.Next(argMax). Можно переопределить функцию получения нового индекса getInt.
Возврат: -1 - нет свободных индексов, >=0 неиспользованный индекс
AddKey()
AddKey(string argKey)
Добавить текстовый ключ, для которого будет автоматически выделен индекс (следующий, еще не использованный).
MarkUsed()
MarkUsed(int argIndex) MarkUsed(string argKey)
Пометить индекс (argIndex) как использованый. В случае передачи текстового ключа (argKey) будет найден, соответствующий индекс.
MarkUnUsed()
MarkUnUsed(int argIndex) MarkUnUsed(string argKey)
Пометить индекс (argIndex) снова как не использованый. В случае передачи текстового ключа (argKey) будет найден, соответствующий индекс.