「=」演算子を使用して、連想配列を含むリストをオーバーロードする方法を教えてください。C++/CLI は、私が使用している言語です。
このようなことを達成したいです。
`myList[0]["Key"] = "1";`
myList の場所
System::Collections::Generic::List<AssociativeArray<String^> ^> ^myList
どなたか、この手がかりを教えてください。
前もって感謝します、
ピーター・K・ジョン
「=」演算子を使用して、連想配列を含むリストをオーバーロードする方法を教えてください。C++/CLI は、私が使用している言語です。
このようなことを達成したいです。
`myList[0]["Key"] = "1";`
myList の場所
System::Collections::Generic::List<AssociativeArray<String^> ^> ^myList
どなたか、この手がかりを教えてください。
前もって感謝します、
ピーター・K・ジョン
なぜあなただけを使用しないのですList<Dictionary<String^, String^>^>^
か?
その構文はすでにサポートされています。
ただし、Dictionary
ニーズを満たさない場合 (たとえば、ハッシュテーブルの代わりにトライ構造が必要な場合)、インデクサーの実装は次のようになります。
generic<typename T>
ref class AssociativeArray
{
// implementation details
// ...
public:
property T default[String^]
{
T get(String^ key)
{
T result;
if (!TryGetValue(key, result)) throw gcnew KeyNotFoundException(key);
return result;
}
void set(String^ key, T val)
{
SetValue(key, val);
}
}
};