当前位置: 首页 > wzjs >正文

网站正在备案中河南网站排名优化

网站正在备案中,河南网站排名优化,微信公众号创建需要多少钱,东莞品牌网站建设C#知识:泛型与非泛型容器的基本操作 这里介绍一下C#中几种常用的容器创建和增删改查。 1、有关容器的接口和类关系图 1.1 非泛型集合接口继承关系 1.2 非泛型集合类实现关系 1.3 泛型集合接口继承关系 1.4 泛型集合类实现关系 2、非泛型容器 using System.Collect…

C#知识:泛型与非泛型容器的基本操作

这里介绍一下C#中几种常用的容器创建和增删改查。


1、有关容器的接口和类关系图

1.1 非泛型集合接口继承关系

在这里插入图片描述

1.2 非泛型集合类实现关系



1.3 泛型集合接口继承关系

在这里插入图片描述

1.4 泛型集合类实现关系

在这里插入图片描述



2、非泛型容器

  • using System.Collections;
  • 内部为Object类型,存在装箱拆箱

2.1 ArrayList动态数组

  • 一个能自动扩容的动态数组
  • 注意Remove方法只会删除第一个匹配的元素
ArrayList arrayList = new ArrayList();
//增
arrayList.Add(1);   
arrayList.Add("23");    
arrayList.Add(4.0f);   
arrayList.Add(5);   
arrayList.Add(6);   
arrayList.Add(6);   
arrayList.Add(true);
arrayList.Add(true);
arrayList.Insert(2, "GO ");
//删
arrayList.Remove("23");
arrayList.RemoveAt(0);
//改
arrayList[0] = "KFC";
//查
Console.WriteLine(arrayList.Contains(6));   //True
Console.WriteLine(arrayList.IndexOf(5));    //2
Console.WriteLine(arrayList.IndexOf(9));    //-1
Console.WriteLine(arrayList.LastIndexOf(true)); //6
Console.WriteLine(arrayList.Count); //7
Console.WriteLine(arrayList.Capacity);  //16arrayList.Insert(4, 9);
//遍历
for (int i = 0; i < arrayList.Count; i++)
{Console.Write(arrayList[i] + " ");
}
Console.WriteLine();    //KFC 4 5 6 9 6 True TruearrayList.Remove(6);    //只删除第一个6
//迭代器遍历
foreach(object item in arrayList)
{Console.Write(item + " ");
}
Console.WriteLine();   //KFC 4 5 9 6 True True

2.2 非泛型栈Stack

  • 后进先出
//非泛型栈创建
Stack stack = new Stack();//增
stack.Push(1);
stack.Push(2);
stack.Push(3);
stack.Push(4);
stack.Push(5);//删
object topValue = stack.Pop();  
Console.WriteLine(topValue);    //5//查
//查看栈顶元素
Console.WriteLine(stack.Peek());    //4
//查看栈是否包含元素
Console.WriteLine(stack.Contains(3));   //True//迭代器遍历
Console.WriteLine(stack.Count); //4
foreach (object item in stack)
{Console.Write(item + " ");
}
Console.WriteLine();    //4 3 2 1//将栈转换为数组遍历
object[] objects = stack.ToArray();
for(int i = 0;i < objects.Length;i++)
{Console.Write(objects[i] + " ");
}
Console.WriteLine();    //4 3 2 1

2.3 非泛型队列Queue

  • 先进先出
//创建
Queue queue = new Queue();
Queue<int> queue2 = new Queue<int>();//增
queue.Enqueue(1);
queue.Enqueue(2);
queue.Enqueue(3);
queue.Enqueue(4);
queue.Enqueue(5);
queue.Enqueue(6);//删
Console.WriteLine(queue.Dequeue()); //1//查
Console.WriteLine(queue.Peek());    //2
Console.WriteLine(queue.Contains(4));   //True//遍历类似栈,从头到尾遍历
foreach (object item in queue)
{Console.Write(item + " ");
}
Console.WriteLine();    //2 3 4 5 6

2.4 HashTable

  • 存放键值对
//创建
Hashtable hashtable = new Hashtable();
//增
hashtable.Add("v50", "KFC");
hashtable.Add("天王盖地虎", "宝塔镇河妖");
hashtable.Add("Damage", 100);
hashtable.Add(1, 3017);
//删
//根据键来删除,如果键不存在则取消删除操作
hashtable.Remove("Damage");//改
hashtable["v50"] = "UFO";//查
Console.WriteLine(hashtable["天王盖地虎"]);  //宝塔镇河妖
Console.WriteLine(hashtable.Contains(1));   //True
Console.WriteLine(hashtable.ContainsKey(1));    //True
Console.WriteLine(hashtable.ContainsValue(1));  //False//遍历
//通过键遍历
foreach (object item in hashtable.Keys)
{Console.Write("(" +item + " , ");Console.Write(hashtable[item] + ") ");
}
Console.WriteLine();    //(天王盖地虎 , 宝塔镇河妖) (v50 , UFO) (1 , 3017)//遍历所有值
foreach (object item in hashtable.Values) 
{ Console.Write($"{item} ");
}
Console.WriteLine();    //宝塔镇河妖 UFO 3017//遍历键值对
foreach (DictionaryEntry item in hashtable)
{Console.Write($"({item.Key} , ");Console.Write($"{item.Value}) ");
}
Console.WriteLine();    //(天王盖地虎 , 宝塔镇河妖) (v50 , UFO) (1 , 3017)//通过迭代器进行遍历
IDictionaryEnumerator dictionaryEnumerator = hashtable.GetEnumerator();
while(dictionaryEnumerator.MoveNext())
{Console.Write($"({dictionaryEnumerator.Key} , ") ;Console.Write($"{dictionaryEnumerator.Value}) ") ;
}
Console.WriteLine();    //(天王盖地虎 , 宝塔镇河妖) (v50 , UFO) (1 , 3017)


3、泛型容器

3.1 泛型数组List

  • 方法类似于ArrayList
List<int> list = new List<int>();

3.2 泛型字典Dictionary

  • 方法类似于HashTable
Dictionary<string, int> dictionary = new Dictionary<string, int>();

3.3 泛型栈

  • 方法类似于非泛型栈
Stack<int> stack2 = new Stack<int>();

3.4 泛型队列

  • 方法类似非泛型队列
Queue<int> queue2 = new Queue<int>();

3.5 双向链表LinkedList

  • 增删快,查改慢
  • 能访问某个节点的前置和后置
LinkedList<int> myLinkedList = new();
//增
myLinkedList.AddLast(5);
myLinkedList.AddFirst(4);
myLinkedList.AddFirst(3);
myLinkedList.AddFirst(1);LinkedListNode<int> node1 = myLinkedList.Find(3);
myLinkedList.AddBefore(node1, 2);
LinkedListNode<int> node2 = myLinkedList.Find(5);
myLinkedList.AddAfter(node2, 6);
//删
myLinkedList.RemoveFirst();
myLinkedList.RemoveLast();
myLinkedList.Remove(3);
//改
myLinkedList.First.Value = 9;
myLinkedList.Find(4).Value = 8;//遍历
LinkedListNode<int> currentNode = myLinkedList.First;
while(currentNode != null)
{Console.Write($"{currentNode.Value} ");currentNode = currentNode.Next;
}
Console.WriteLine();    //9 8 5

4、参考资料

  1. 《唐老狮C#》

本篇结束,感谢您的阅读~

在这里插入图片描述

http://www.dtcms.com/wzjs/51669.html

相关文章:

  • 南昌网站推广¥做下拉去118cr十大免费网站推广平台有哪些
  • 深圳优定软件网站建设学校招生网络营销方案
  • 网站建设发布教程凡科建站官网登录
  • 川畅咨询 的网络营销怎么做抖音优化公司
  • gta买办公室网站建设中中国十大公关公司排名
  • wordpress做的网站效果搜索引擎哪个好
  • 做网站的人怎么联系提高基层治理效能
  • 韶关做网站微博推广费用一般多少
  • 电子商务网站营销方案免费服务器
  • 网站建设电话销售的话术seo专业知识培训
  • dede网站后台地址扫描百度seo优化分析
  • 看网站的浏览器站长网站统计
  • 有什么正规的网站做代加工长春网站建设制作
  • vi设计哪里有seo sem优化
  • 免费logo设计的网站百度关键词工具入口
  • 网站建设项目执行情况报告模板网页自动点击软件
  • 宁波网站推广优化公司电话百度seo如何优化
  • 公司变更登记申请表seo是哪个英文的缩写
  • 哈尔滨网站开发企业吉林seo网络推广
  • wordpress导航站模版网络广告策划书范文
  • 咸宁响应式网站建设价格南昌seo全网营销
  • 一个人开公司做网站整合营销传播理论
  • 网站设计 论坛提高销售的10种方法
  • 花样云做网站怎样国外搜索引擎入口
  • 珠海市企业网站制作服务机构百度关键词刷搜索量
  • 成都网站建设龙兵科技网站seo收费
  • FPGA毕业设计代做网站域名注册平台
  • 软件测试有前途吗网站建设公司seo关键词
  • 新东方雅思培训机构官网seo免费优化网址软件
  • 东莞seo建站优化费用seo建站是什么意思