Инициализировать массив словаря случайно - PullRequest
0 голосов
/ 02 мая 2018

Я имею дело с массивом словарей, и этот ТАК пост действительно полезен для достижения того, чего я хочу до сих пор.

Но теперь я хочу инициализировать Dictionary для индекса массива, основанного на выводе кода.

У меня есть Dictionary<int,string>, где я храню Id в качестве ключа. У меня есть массив из 10 словарей следующим образом:

Dictionary<int, string>[] matrix = new Dictionary<int, string>[10];

Итак, исходя из значения (Id%10), я хочу сохранить эту запись в соответствующем массиве. Например, если id= 12, я хочу сохранить его в matrix[2]. Если id = 15, я хочу сохранить его в matrix[5].

Теперь вопрос в том, как каждый раз проверять, инициализирован ли словарь для определенного индекса или нет. Если да, то добавьте запись в словарь, иначе инициализируйте экземпляр, а затем добавьте запись в словарь.

Примерно так:

if {} // if dict with id%10 is initialized then
{
    matrix[id%10].Add();
}
else
{
    matrix[id%10] = new Dictionary<int,string>();
    matrix[id%10].Add();
}

Редактировать: я знаю, что могу инициализировать все сначала, используя цикл, но я хочу инициализировать только тогда, когда это необходимо.

1 Ответ

0 голосов
/ 02 мая 2018
    Dictionary<int, string>[] matrix = new Dictionary<int, string>[10];
    int id = 0; // Number here
    int index = id % 10;

    if (matrix[index] == null)
    {
        matrix[index] = new Dictionary<int, string>();
    }

    int key = 0; // key you want to insert

    if (matrix[index].ContainsKey(key))
    {
        // Dictionary already has this key. handle this the way you want
    }
    else
    {
        matrix[index].Add(0, ""); // Key and value here
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...