问题描述
|
你们中的任何一个都请给我建议如何使用\“ = \”运算符重载列表中包含关联数组的列表。 C ++ / CLI是我正在使用的工具。
我想实现这样的目标。
`myList[0][\"Key\"] = \"1\";`
myList在哪里
System::Collections::Generic::List<AssociativeArray<String^> ^> ^myList
能否请您给我一些线索。
提前致谢,
彼得·约翰
解决方法
您为什么不只使用
List<Dictionary<String^,String^>^>^
?
该语法已受支持。
但是,如果Dictionary
不能满足您的需求(例如,您想要一个trie结构而不是哈希表),则索引器实现将如下所示:
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);
}
}
};