0

你们中的任何人请告诉我如何使用“=”运算符重载包含关联数组的列表。C++/CLI 是我正在使用的语言。

我想实现这样的目标。

`myList[0]["Key"] = "1";`

myList 在哪里 System::Collections::Generic::List<AssociativeArray<String^> ^> ^myList

你们中的任何人都可以给我一些线索吗?

提前致谢,
彼得 K 约翰

4

1 回答 1

3

你为什么不直接使用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);
        }
    }
};
于 2011-05-01T13:18:44.720 回答