随机初始化字典数组

时间:2018-05-02 09:45:43

标签: c# .net arrays dictionary

我正在处理字典数组,this SO Post对于实现我想要的目标非常有帮助。

但是,现在我想根据代码输出初始化Dictionary数组索引。

我有一个Dictionary<int,string>,我将Id存储为Key。我有10个字典的数组如下:

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

因此,基于(Id%10)的值,我想将该记录存储在相应的数组中。例如,如果id= 12,我想将其存储在matrix[2]中。如果id = 15,我想将其存储在matrix[5]

现在,问题是,如何检查每次是否为特定索引初始化字典。如果是,则将记录添加到字典中,否则初始化实例,然后将记录添加到Dictionary。

如下所示:

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 :(得分:2)

    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
    }