泛型容器,与C++的vector类似,是顺序结构而不是链式结构。
//声明一个List泛型集合的变量listNew
List<string> listNew=new List<string>();
1.Add()方法,添加元素的方法
2.Clear()方法,无返回值,清空集合中的所有元素
3.Contains()方法,返回布尔型数据,参数为集合中元素的数据类型
4.Equals()方法
5.Indexof()返回值为int,从索引位置0开始查找元素,并得到索引值
6.Insert()方法,插入元素
listNew.Insert(3,"三点五号元素");
7.Remove()方法,删除指定元素
8.RemoveAt()方法,根据索引位置删除元素
9.Reserve()方法,将集合中的所有元素反向排序
10.ToArray()方法,将集合转换为数组
C#中的泛型链表,与C++的list类似,是链式结构。
LinkedList<string> months = new LinkedList<string>();
months.AddLast("March");
months.AddFirst("January");
var march = months.Find("March");
months.AddBefore(march, "February");
months.AddAfter(march, "April");
C#的泛型hash表
//定义
Dictionary<string, string> openWith = new Dictionary<string, string>();
//添加元素
openWith.Add("txt", "notepad.exe");
//取值
Console.WriteLine("For key = \"rtf\", value = {0}.", openWith["rtf"]);
//更改值
openWith["rtf"] = "winword.exe";
//遍历key
foreach (string key in openWith.Keys)
{
Console.WriteLine("Key = {0}", key);
}
//遍历字典
foreach (KeyValuePair<string, string> kvp in openWith)
{
Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value);
}
//删除元素
openWith.Remove("doc");
常用属性
名称 说明
Comparer 获取用于确定字典中的键是否相等的 IEqualityComparer<T>。
Count 获取包含在 Dictionary<TKey, TValue> 中的键/值对的数目。
Item 获取或设置与指定的键相关联的值。
Keys 获取包含 Dictionary<TKey, TValue> 中的键的集合。
Values 获取包含 Dictionary<TKey, TValue> 中的值的集合。
常用方法
名称 说明
Add 将指定的键和值添加到字典中。
Clear 从 Dictionary<TKey, TValue> 中移除所有的键和值。
ContainsKey 确定 Dictionary<TKey, TValue> 是否包含指定的键。
ContainsValue 确定 Dictionary<TKey, TValue> 是否包含特定值。
Equals(Object) 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。)
Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
GetEnumerator 返回循环访问 Dictionary<TKey, TValue> 的枚举器。
GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)
GetObjectData 实现 System.Runtime.Serialization.ISerializable 接口,并返回序列化 Dictionary<TKey, TValue> 实例所需的数据。
GetType 获取当前实例的 Type。 (继承自 Object。)
MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
OnDeserialization 实现 System.Runtime.Serialization.ISerializable 接口,并在完成反序列化之后引发反序列化事件。
Remove 从 Dictionary<TKey, TValue> 中移除所指定的键的值。
ToString 返回表示当前对象的字符串。 (继承自 Object。)
TryGetValue 获取与指定的键相关联的值。
C#的hash表,但键值对都是object类型,需要装箱和拆箱。利用Hashtable.Synchronized(Hashtable table)可使多线程安全。
C#的队列,可使用泛型也可以不使用。不使用泛型时,可利用Queue.Synchronized(new Queue())使多线程安全。
Enqueue():在队列的末端添加元素
Dequeue():在队列的头部读取和删除一个元素,注意,这里读取元素的同时也删除了这个元素。如果队列中不再有任何元素。就抛出异常
Peek():在队列的头读取一个元素,但是不删除它
Count:返回队列中的元素个数
TrimExcess():重新设置队列的容量,因为调用Dequeue方法读取删除元素后不会重新设置队列的容量。
Contains():确定某个元素是否在队列中
CopyTo():把元素队列复制到一个已有的数组中
ToArray():返回一个包含元素的新数组
C#的栈,可使用泛型也可以不使用。不使用泛型时,可利用Stack .Synchronized(new Stack ())使多线程安全。
//定义
private Stack<string> StaArray = new Stack<string>();
//压栈
StaArray.Push("张三");
//查栈
StaArray.Peek()
//出栈
StaArray.Pop()
C#的hash集,是泛型,非线性结构.