.net中集合、容器(Collection)的这些事

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 一般的开发中常用的集合有: 列表:List 集合:Set 字典:Dictionary 队列:Queue 栈:Stack 只要知道了这些名字,在FCL库中可以找到合适的实现,如下列出了各种类,根据需要选择即可。

一般的开发中常用的集合有:

列表:List

集合:Set

字典:Dictionary

队列:Queue

栈:Stack

只要知道了这些名字,在FCL库中可以找到合适的实现,如下列出了各种类,根据需要选择即可。

命名空间

引入的.net版本

说明

集合实例

System.Collections 

1.0

普通的集合类、接口等

ArrayList

BitArray

HashTable

Queue

SortedList

Stack

System.Collections.Specialized

1.0

特定的强类型集合

HybridDictionary

ListDictionary

NameValueCollection

OrderedDictionary

StringCollection

StringDictionary

1.0的集合类仅在兼容以前代码时使用,现在一般使用如下的类

System.Collections.Generic

2.0

泛型的集合

更好的类型安全和性能

Dictionay<T,V>

HashSet<T>

LinkedList<T>

List<T>

Queue<T>

SortedDictionary<T,V>

SortedSet<T>

Statck<T>

3.0

线程安全容器

 

SynchronizedCollection<T>

SynchronizedKeyedCollection<K, T >

SynchronizedReadOnlyCollection< T >

System.Collections.ObjectModel

2.0

用于属性和方法返回类型

可重用库设计时使用

Collection<T>

KeyedCollection<T,V>

ObervableCollection<T>

ReadOnlyCollection<T>

ReadOnlyObervableCollection<T>

System.Collections.Concurrent

 

4.0

线程安全集合

处理了线程的并发访问

非阻塞[如果一个线程试图提取一个不存在的元素,线程立即返回]

ConcurrentBag<T>

ConcurrenDictionary<T,V>

ConcurrenQueue<T>

ConcurrenStack<T>

ConcurrenDictionary的枚举GetEnumerator不返回快照,其他返回快照

 

阻塞集合

BlockingCollection<(T>

Wintellect’s Power Collections

Wintellect提供了类似STL的集合和算法类

集合类

 

BigList<T>

有序T的结合,操作100个以上的数据项效率高

Bag<T>

无序T的集合,集合进行了哈希处理,允许重复项

OrderedBag<T>

有序T的集合,允许重复项

Set<T>

无序T的集合,不允许重复项

OrderedSet<T>

有序T的集合,不允许重复项

Deque<T>

双端队列

OrderedDictionary<T,V>

字典,键进行了排序

MultiDictionary<T,V>

字典,每个键有多个值,允许重复键,数据项无序

Ordered MultiDictionary<T,V>

字典,每个键有多个值(值也进行了排序),允许重复键,键进行了排序

 

 

Algorithms

针对泛型集合的查找、替换、排序、转换、组合等各种算法的实现类

 

[优先使用集合类自带的算法函数,只有在没有需要的函数时才使用这些通用的算法和STL的道理一样]

相关文章
|
1月前
|
Java 物联网 C#
C#/.NET/.NET Core学习路线集合,学习不迷路!
C#/.NET/.NET Core学习路线集合,学习不迷路!
|
3月前
|
存储 Java 容器
HashMap 的基本操作【集合容器知识回顾 ⑤】
本文介绍了HashMap的基本操作,包括创建对象、添加、获取、删除和替换元素、获取所有key的集合、遍历HashMap,以及如何存储自定义类型键值对,并强调了当使用自定义对象作为键时需要重写equals和hashCode方法以确保正确的行为。
HashMap 的基本操作【集合容器知识回顾 ⑤】
|
2月前
|
开发框架 NoSQL MongoDB
C#/.NET/.NET Core开发实战教程集合
C#/.NET/.NET Core开发实战教程集合
|
3月前
|
存储 Java 容器
HashSet 的基本操作【集合容器知识回顾 ④】
本文介绍了HashSet的基本操作,包括创建和初始化、添加和删除元素、判断元素存在性、获取集合大小、遍历、求交集差集、转换为数组和其他集合类型、比较两个HashSet,以及如何将自定义对象作为HashSet的元素时重写hashCode和equals方法,最后总结了HashSet的性能特点和使用注意事项。
HashSet 的基本操作【集合容器知识回顾 ④】
|
3月前
|
存储 安全 Java
ArrayList的基本操作【集合容器知识回顾 ②】
这篇文章详细介绍了ArrayList的基本操作,包括创建对象、添加和删除元素、获取和更新元素、遍历、判断元素存在性、集合的空值检查、批量操作、转换为数组、截取子集合、查找元素索引、克隆拷贝、清空集合以及容量管理等,同时指出了使用ArrayList时的注意事项,如线程安全性、容量管理、删除元素的性能、遍历时的修改、空值处理和性能优化。
ArrayList的基本操作【集合容器知识回顾 ②】
|
3月前
|
存储 安全 Java
集合概览【集合容器知识回顾 ①】
这篇文章是关于Java集合框架的全面介绍,包括集合的层次结构、常见集合类的特点、如何学习集合框架、泛型的应用、基本操作以及一些常用的集合操作技巧和注意事项。
集合概览【集合容器知识回顾 ①】
|
3月前
|
Java API 索引
LinkedList的基本操作【集合容器知识回顾 ③】
本文详细介绍了LinkedList的基本操作,包括初始化、添加、获取、删除、替换元素、遍历,以及LinkedList独有的队列和栈相关操作,同时指出了LinkedList在插入和删除操作方面的优势以及在随机访问元素时的性能劣势。
|
4月前
|
安全 算法 Java
【Java集合类面试二】、 Java中的容器,线程安全和线程不安全的分别有哪些?
这篇文章讨论了Java集合类的线程安全性,列举了线程不安全的集合类(如HashSet、ArrayList、HashMap)和线程安全的集合类(如Vector、Hashtable),同时介绍了Java 5之后提供的java.util.concurrent包中的高效并发集合类,如ConcurrentHashMap和CopyOnWriteArrayList。
【Java集合类面试二】、 Java中的容器,线程安全和线程不安全的分别有哪些?
|
11天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
142 77
|
20天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
下一篇
DataWorks