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<myComplex,int>
第一;
如何在 C# 中做这样的事情?
【问题讨论】:
我最好的猜测是您需要Dictionary<myComplex, int>
,但更多信息会很好。
【参考方案1】:
相当于System.Collections.Generic
命名空间中的类SortedDictionary<TKey, TValue>
。
如果您不关心顺序,System.Collections.Generic
命名空间中的类 Dictionary<TKey, TValue>
可能就足够了。
【讨论】:
如果他们不关心订单,Dictionary
绰绰有余,更可取。
@Daniel:是的,但这引出了一个问题:如果他们不关心顺序,为什么他们在 C++ 中使用“地图”?他们本可以在 C++ 中使用 unordered_map(假设他们自 C++11 起就一直处于清醒状态)。
@DaveDoknjas 同意。我的意思是,您的陈述是,鉴于他们不关心订单,Dictionary
“可能 [...] 就足够了”。实际上,在他们不关心订单的情况下,Dictionary
绰绰有余;这是最好的。【参考方案2】:
std::map<Key, Value>
→ SortedDictionary<TKey, TValue>
std::unordered_map<Key, Value>
→ Dictionary<TKey, TValue>
【讨论】:
【参考方案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++那样的map关联容器吗,如果有怎么用啊,很想用map<T,T>那样的容器啊