集合(Collection)
集合类是专门用于数据存储和检索的类。这些类提供了对栈,队列、列表和哈希表的支持。大多数集合类实现了相同的接口。
集合类服务于不同的目的,如为元素动态分配内存,基于索引访问列表项等等。这些类创建Object类的对象的集合。在C#中,Object类是所有数据类型的基类。
常用的集合类
动态数组(ArrayList)
动态数组(ArrayList)代表了可被单独索引的对象的有序集合。它基本上可以替代一个数组。但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小。它也允许在列表中进行动态内存分配、增加、搜索、排序各项。
ArrayList类常用的属性
ArrayList类常用的方法
ArrayList list = new ArrayList();
list.Add("12");
Console.WriteLine(list.Capacity);
Console.WriteLine(list.Count);
Console.WriteLine(list[0]);
list.AddRange(new int[] { 2, 3, 5,0 });
Console.WriteLine(list.Count);
Console.WriteLine(list.Contains(12));
list.Remove("12");
Console.WriteLine(list.Count);
list.RemoveAt(0);
Console.WriteLine(list.Count);
Console.WriteLine(list.Capacity);
list.TrimToSize();
Console.WriteLine(list.Capacity);
list.Clear();
Console.WriteLine(list.Count);
哈希表(Hashtable)
它使用键来访问集合中的元素。当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值。哈希表中的每一项都有一个键/值对。键用于访问集合中的项目。
Hashtable类常用的属性
Hashtable类常用的方法
Hashtable table = new Hashtable();
table.Add(1,"张三");
table.Add(2, "李四");
table.Add("1", "张三");
//声明了一个int作为键类型,string作为值类型的键值对集合
Dictionary<int, string> list = new Dictionary<int, string>();
list.Add(1,"zs");
foreach (DictionaryEntry item in table)
{
Console.WriteLine(item.Key+":"+item.Value);
}
排列列表(SortedList)
SortedList类常用的属性
SortedList类常用的方法
## 标题
堆栈(Stack)
它代表了一个后进先出的对象集合。当您需要对各项进行后进先出的访问时,则使用堆栈。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。
Stack 类常用的属性
Stack 类常用的方法
Stack ts = new Stack();
ts.Push("张三");
ts.Push("李四");
ts.Push("张三");
ts.Push("王五");
foreach (var item in ts)
{
Console.WriteLine(item);
}
Console.WriteLine(ts.Peek());
Console.WriteLine(ts.Count);
Console.WriteLine(ts.Pop());
Console.WriteLine(ts.Peek());
Console.WriteLine(ts.Count);
队列(Queue)
它代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。
Queue 类常用的属性
Queue 类常用的方法
Queue queue = new Queue();
queue.Enqueue("asd");
queue.Enqueue("zhangsan");
queue.Enqueue("lisi");
queue.Enqueue("王五");
foreach (var item in queue)
{
Console.WriteLine(item);
}
queue.Dequeue();
Console.WriteLine(queue.Count);
foreach (var item in queue)
{
Console.WriteLine(item);
}
泛型(Generic)
泛型(Generic)允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。
泛型(Generic)的特性
1.它有助于您最大限度地重用代码、保护类型的安全以及提高性能。
2.您可以创建泛型集合类。.NET 框架类库在 System.Collections.Generic命名空间中包含了一些新的泛型集合类。您可以使用这些泛型集合类来替代 System.Collections 中的集合类。
3.您可以创建自己的泛型接口、泛型类、泛型方法、泛型事件和泛型委托。
4. 您可以对泛型类进行约束以访问特定数据类型的方法。
5.关于泛型数据类型中使用的类型的信息可在运行时通过使用反射获取。
泛型集合常用方法
List<string> list = new List<string>();
list.Add("zs");
list.Add("ls");
list.Add("ww");
foreach (var item in list)
{
Console.WriteLine(item);
}
Console.WriteLine(list[2]);