C++ 中的 <map> 的 C# 等价物是啥? [复制]

Posted

技术标签:

【中文标题】C++ 中的 <map> 的 C# 等价物是啥? [复制]【英文标题】:What is C# equivalent of <map> in C++? [duplicate]C++ 中的 <map> 的 C# 等价物是什么? [复制] 【发布时间】:2014-02-06 15:16:59 【问题描述】:

我已经定义了一个类 myComplex。我需要将它映射到整数。在 C++ 中,我会创建一个映射为 map&lt;myComplex,int&gt;第一;

如何在 C# 中做这样的事情?

【问题讨论】:

我最好的猜测是您需要Dictionary&lt;myComplex, int&gt;,但更多信息会很好。 【参考方案1】:

相当于System.Collections.Generic 命名空间中的类SortedDictionary&lt;TKey, TValue&gt;

如果您不关心顺序,System.Collections.Generic 命名空间中的类 Dictionary&lt;TKey, TValue&gt; 可能就足够了。

【讨论】:

如果他们不关心订单,Dictionary 绰绰有余,更可取。 @Daniel:是的,但这引出了一个问题:如果他们不关心顺序,为什么他们在 C++ 中使用“地图”?他们本可以在 C++ 中使用 unordered_map(假设他们自 C++11 起就一直处于清醒状态)。 @DaveDoknjas 同意。我的意思是,您的陈述是,鉴于他们不关心订单,Dictionary“可能 [...] 就足够了”。实际上,在他们不关心订单的情况下,Dictionary 绰绰有余;这是最好的。【参考方案2】:

std::map&lt;Key, Value&gt;SortedDictionary&lt;TKey, TValue&gt;

std::unordered_map&lt;Key, Value&gt;Dictionary&lt;TKey, TValue&gt;

【讨论】:

【参考方案3】:

看看 System::Collections::Generic 中的Dictionary class。

Dictionary<myComplex, int> myMap = new Dictionary<myComplex, int>();

【讨论】:

【参考方案4】:

.NET Framework 也提供了许多集合类。您可以在 C# 中使用字典。 请在下面的 msdn 链接中找到详细信息和示例 http://msdn.microsoft.com/en-us/library/xfhwa508.aspx

【讨论】:

以上是关于C++ 中的 <map> 的 C# 等价物是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 C++ 到 C# 获取 map<string, int>

c#中的委托和c++中的bind/function对比

C#里面有像C++那样的map关联容器吗,如果有怎么用啊,很想用map<T,T>那样的容器啊

Swig:将 std::vector<unsigned char> 传递给从 c++ 生成的 c# 函数

stl中的C++ map::find()

这是 C++ 中的有效数据结构 Map<string, string, string> 吗?