私は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(文字列、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);
次の行が赤で下線が引かれて、Iそれが何で、どのように修正できるかを知る必要があるだけです!
私は自分自身で多くの研究をしてきましたが、これについて私を助けるものは何も見つかりませんでした。 辞書の辞書を作成する方法を見てきましたが、Valueにオブジェクト型を気にしないように辞書に伝える方法はよく分かりません。
私はここにいくつかの使用であるかもしれない「T」を知っているが、私は本当にそれはいつも私に語ったので、それを使用する方法がわからないので、
「型または名前空間名 『T』が見つかりませんでした」私は何をすべきか?事前 で
おかげ - サーシャ
このメソッドは非常にうまくいくようです! – Sasha