我對C#相當陌生,我來自Ruby背景。我仍然有很多東西要學習,這就是爲什麼我要問以下問題:C#字典在另一個詞典中使用TValue
目標: 1)我想創建一個字符串作爲鍵和任何對象類型我想要的值的字典。類似這樣的:
Dictionary<string, T>
2)但這並不是全部。我還想要一個以字符串作爲關鍵字的「主」字典和上面描述的字典作爲值。 事情是這樣的:
Dictionary<string, Dictionary<string T>>
我希望它是這樣,所以我可以工作,如下面的例子:
MasterDictionary[Dict1].Add(Thing1)
MasterDictionary[Dict2].Add(Thing2)
目前代碼: 我試圖做到這一點使用下面的代碼
public List<string> DataTypes;
public Dictionary<string, Dictionary<string, object>> TempData;
public Dictionary<string, Dictionary<string, object>> GameData;
public Session()
{
// Create a list of all Data Types.
DataTypes = new List<string>();
DataTypes.Add("DataInfo");
DataTypes.Add("Maps");
DataTypes.Add("Tilesets");
// Create and populate TempData dictionary.
TempData = new Dictionary<string, Dictionary<string, object>>();
TempData.Add("DataInfo", new Dictionary<string, DataInfo>());
TempData.Add("Maps", new Dictionary<string, Map>());
TempData.Add("Tilesets", new Dictionary<string, Tileset>());
// Create GameData dictionary and copy TempData into it.
GameData = new Dictionary<string, object>(TempData);
}
問題: 我收到以下錯誤
1)'System.Collections.Generic.Dictionary> .Add(string,System.Collections.Generic.Dictionary)'的最佳重載方法匹配有一些無效參數
2)錯誤10參數1:無法轉換從「System.Collections.Generic.Dictionary>」到「System.Collections.Generic.IDictionary」
以下行紅色下劃線
TempData.Add("DataInfo", new Dictionary<string, DataInfo>());
TempData.Add("Maps", new Dictionary<string, Map>());
TempData.Add("Tilesets", new Dictionary<string, Tileset>());
// Create GameData dictionary and copy TempData into it.
GameData = new Dictionary<string, object>(TempData);
我明明做錯了什麼事,甚至非法這裏,我只需要知道它是什麼以及我如何修復它!
我一直在做我自己的很多研究,但沒有發現任何可以幫助我的事情。 我已經看過如何製作字典詞典,但我不太清楚如何告訴字典不要關心Value中的對象類型。
我知道「T」可能是一些使用在這裏,但我真的不知道如何使用它,因爲它總是告訴我「的類型或命名空間名稱‘T’找不到」
所以我該怎麼辦?
預先感謝 - 薩沙
這種方法似乎工作得很好! – Sasha