Ответ 1
Вот что я нашел (игнорируя старые не общие коллекции):
-
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>
- эквивалент astd::vector<T>
, но сохраняя его упорядоченным, используя двоичный поиск + вставку при добавлении элементов. -
SortedSet<T>
-std::set<Key>
-
Queue<T>
-std::queue<T>
-
Stack<T>
-std::stack<T>
-
LinkedList<T>
-std::list<T>
Примечательно, что в коллекциях .NET заметны варианты "multi-", например, multiset
, multimap
и т.д. Однако они добавили ряд очень полезных потокобезопасных коллекций: варианты "Concurrent-", например, ConcurrentDictionary
, ConcurrentQueue
и т.д.