c#软件开发学习笔记
一、常用集合
1.ArrayList()动态集合
区别 :
1.ArrayList定义完之后数组的长度可以动态添加 ;int[]一旦定义完之后长度是固定的
2.ArrayList存储的是对象类型; int[]数组只能存储相同类型的数据
3.ArrayList存取数据会出现装箱、拆箱操作;int[] 不用装箱和拆箱
4.ArrayList存储数据类型不安全;int[]数据类型安全
//创建一个动态集合对象
ArrayList list1= new ArrayList();
//1.添加元素 把1转成对象类型之后 再添加到动态集合里面
//把值类型转成引用类型的过程,就是装箱操作
list1.Add(1);
list1.AddRange(new int[]{1,2,3});
//2.Contains 是否包含某个元素
list1.Contains(1);
//3.IndexOf() 获取某个元素的索引值
list1.IndexOf(1);
//LastIndexOf 从后往前 获取某个元素的索引值
list1.LastIndexOf("李四");
//4.remove() 移除指定元素
list1.Remove(1);
//RemoveAt移除指定索引的元素
list1.RemoveAt(0);
//5.Insert()在指定位置添加一个元素
list1.Insert(0, "李四");
//在指定位置添加一个范围数据
list1.InsertRange(2,new int[]{1,2,3});
//6.Clear()清空集合
list1.Clear();
//7.Reverse()颠倒数组的元素
list1.Reverse();
//8.GetRange() 从原集合取出一个子集, 参数1从指定位置开始,参数2截取的长度
ArrayList list2 = list1.GetRange(0, 3);
//setRange()设置指定范围的数据
list1.SetRange(0,new int[] {999,888});
//9.Count 集合数据个数
list1.Count;
//10.遍历集合
foreach (var item in list1)
Console.WriteLine(item);
2.List<>泛型集合
长度不固定 只能存储相同类型的数据
ArrayList 能存储任意类型的数据,List只能存储相同类型的数据
ArrayList 在存储数据的时候,有一个装箱操作,而List没有装箱操作,理论上会比ArrarList的效率高
//创建List<>泛型集合
List<string> list1 = new List<string>(){ "李张三", "李四" };
//1.添加元素
list1.Add("1") ;
list1.AddRange(new List<string> { "王五"}) ;
//2 移除指定元素
list1.Remove("1") ;
list1.RemoveAt(0) ;//移除指定位置的元素
list1.RemoveAll() //移除指定条件的元素 返回值为移除个数
//3.插入元素
list1.Insert(4, "王五");
//4.IndexOf()获取指定元素的索引值
list1.IndexOf("1") ;
3.Dictionary<>字典
字典是有key和value的集合 (key 键 value 值)
Dictionary<string,int> string是key键的类型 int value的类型
其中key和索引类似,必须是唯一的,但是索引只能是数字,并且是有序的,key支持多种数据类型
//定义一个字典
Dictionary<int,string> dic = new Dictionary<int,string>();
//1.添加键值对
dic.Add(0, "张三");//参数1是键 ,参数2是值
dic.Add(1, "李四");
//2.根据键取值
Console.WriteLine(dic[0]); //其中0是键
//3.指定键移除键值对
dic.Remove(0);
//4.键值对的个数
Console.WriteLine(dic.Count);
//5.判断是否包含某个键
Console.WriteLine(dic.ContainsKey(0));
//6.清空键值对
dic.Clear();
//7.遍历字典
foreach (var item in dic)
Console.WriteLine(item.Key+":"+item.Value);
二、其他集合
1.Hashtable()哈希表
Hashtable是.NET 早期非泛型键值对哈希集合,基于哈希算法实现快速查找,存在装箱拆箱、类型不安全问题,现已被泛型Dictionary替代。
Hashtable与Dictionary区别:
Dictionary是泛型集合,类型安全,无装箱、拆箱操作,性能较快;Hashtable是非泛型集合,键和值都是 object,可能发生装箱、拆箱,性能较慢
2.SortedList排序列表
SortedList是一种按键自动排序的集合,它通过键值对存储数据,并在添加或更新时根据键的顺序(升序)自动排序。
SortedList 有泛型和非泛型的两种版本。
3.Stack栈
Stack表示一个后进先出的对象集合,当需要对项目进行后进先出的访问时,则可以使用栈。向栈中添加元素称为推入元素,从栈中移除元素称为弹出元素
SortedList 有泛型和非泛型的两种版本。
//泛型栈的定义方式
Stack<int> stack = new Stack<int>();
//入栈 推入元素
stack.Push("张三");
stack.Push("李四");
stack.Push("王五");
//Pop() 删除并返回栈顶对象
stack.Pop()
//Peek() 返回栈顶对象
stack.Peek()
4. Queue队列
队列(Queue )与栈类似,它代表了一个先进先出的对象集合,当您需要对项目进行先进先出访问时,则可以使用队列。向队列中添加元素称为入队(enqueue),从堆栈中移除元素称为出队(deque)。
Queue<string> queue = new Queue<string>();
//向队列的末尾处添加一个对象 入队
queue.Enqueue("hello1");
queue.Enqueue("hello2");
queue.Enqueue("hello3");
//移除并返回在队列开头的对象 出队
queue.Dequeue();
//返回在队列开头的对象
queue.Peek()
997



被折叠的 条评论
为什么被折叠?



