AddRange引发“无法隐式转换类型”异常

kej*_*ion -2 c# unity-game-engine

我不知道为什么这不起作用:

    Dictionary<string, List<GameObject>> prefabs = new Dictionary<string, List<GameObject>>();
    List<GameObject> slotPrefabs = new List<GameObject>();

    // yadda yadda yadda

    if (prefabs.ContainsKey(slot))
    {
        prefabs[slot] = prefabs[slot].AddRange(slotPrefabs);
    }
    else
    {
        prefabs.Add(slot, slotPrefabs);
    }
Run Code Online (Sandbox Code Playgroud)

它给了我:

无法将类型“ void”隐式转换为“ System.Collections.Generic.List”

我只想添加到字典键的现有列表(如果已经存在)。

jme*_*mon 5

AddRange(slotPrefabs)是一个void方法,表示它不返回任何值。因此,您不能将其分配给变量。

所以prefabs[slot] = prefabs[slot].AddRange(slotPrefabs);应该代替prefabs[slot].AddRange(slotPrefabs);