我还在学习C#,并惊讶地发现了一个 List<T>
更像是一个 std::vector
比一个 std::list
。有人可以根据STL描述所有C#集合(或者如果STL比较很困难,标准概念数据类型与维基百科链接?我希望该引用将广泛有用。
最感兴趣的集合列表包括(随意添加其他集合):
- 排列
- 名单
- 数组列表
- 哈希表
- 字典
- ListDictionary
- SortedDictionary
- 排序列表
- 队列
- 堆
编辑:我刚发现这个类似的问题可能会引起关注: stl C ++和C#容器之间的映射
我还在学习C#,并惊讶地发现了一个 List<T>
更像是一个 std::vector
比一个 std::list
。有人可以根据STL描述所有C#集合(或者如果STL比较很困难,标准概念数据类型与维基百科链接?我希望该引用将广泛有用。
最感兴趣的集合列表包括(随意添加其他集合):
编辑:我刚发现这个类似的问题可能会引起关注: stl C ++和C#容器之间的映射
这是我发现的(忽略旧的非泛型集合):
Array
- C数组,虽然是.NET数组 能够 具有非零的起始索引。List<T>
- std::vector<T>
Dictionary<TKey, TValue>
- unordered_map<Key, Data>
HashSet<T>
- unordered_set<Key>
SortedDictionary<TKey, TValue>
- std::map<Key, Data>
SortedList<TKey, TValue>
- 相当于一个 std::vector<T>
但在添加元素时使用二进制搜索+插入保持顺序。SortedSet<T>
- std::set<Key>
Queue<T>
- std::queue<T>
Stack<T>
- std::stack<T>
LinkedList<T>
- std::list<T>
.NET集合中特别缺少的是“多”变体,例如, multiset
, multimap
但是,他们添加了许多非常有用的线程安全集合:“并发 - ”变体,例如, ConcurrentDictionary
, ConcurrentQueue
等