我是一个菜鸟,我只是在努力,2021正视自己,面对2021!

C#中的集合学习笔记

  前言:漫长的国庆长假终于快结束了,我们该工作的工作了,该学习的学习了,该干什么的也都开始了,这篇博客我主要说一下C#中集合的使用,也就是ArrayList集合和Hashtable字典集合的使用,我在这里说的主要还是简单的使用,使学习的能够很快的学习集合然后自己研究集合的一些高级用法,在最后还列举出了一些常用的小案例。

  1. ArrayList

(1) 命名空间 System.Collection

     (2)创建对象

            1)增

                   ->Add

                   ->AddRange  任何一个集合对象

                          int[] num = { 1, 2, 3, 4, 5, 6 };

                          ArrayList arr = new ArrayList();

                          //ICollection一个对象里面包含很多其他对象

                          arr.AddRange(num);

                   ->Insert

            2)删

                   ->Remove

                   ->RemoveAt

                   ->Clear

            3)改

                   ->像数组一样通过索引来修改

            4)查

                   ->Contains

                   ->IndexOf

  1. 自定义集合

(1) 集合是Object类型,处理数据的时候会需要强转等操作

     (2)举例说明:

     (3)定义索引

            1)就是一个通过传进来的参数访问内部数据的一个属性(带有参数的属性)

            2)public 返回类型 this[索引参数类型 参数名]

              {

                   get{return 通过参数访问的数据;}

                   set{通过参数处理要修改的数据=value}

              }

              案例说明:   

            3)模拟实现集合

  1. foreach语法

    (1) 执行

            1)可以只遍历一部分吗?  不能

            2)可以倒着遍历吗?      不能

            3)举例说明:

                int[] nums = { 1, 4, 6, 87, 87, 3, 23, 45 };

            foreach (int item in nums)

            {

                Console.WriteLine(item);

            }

            Console.ReadKey();

     (2)数据源应该是一个可枚举的类型(IEnumerable)

     (3)foreach循环的步骤

            1)foreach循环首先到数据集中调用GetEnumerator方法得到枚举器对象

            2)到in关键字,调用MoveNext()方法

            3)这个方法返回bool值,将枚举器移到数据集的下一个数据上,并检查是否有数据,如果有,返回true,否则返回false

            4)到临时变量(迭代变量),开始调用枚举器的Current属性,将当前的数据取出来,然后赋值给临时变量

            5)就可以使用了

  1. 嵌套类

(1) 有时候在某个类型中需要一个特定的类型处理数据,而这个类型只在当前对象类中可使用

 (2)可以将这个类定义在一个类的里面,此时称为嵌套类

(3)嵌套类的访问修饰符和一般成员一样

 (4)一般是为了考虑安全问题

  1. yield迭代器

(1) 一般的语法:yield return 数据

 (2)foreach在执行开始访问数据集的时候,依旧是调用IEnumerable中的GetEnumerator方法

(3)这个Getenumerator方法可以使用这个迭代器返回数据

(4)在方法中写上循环,循环体上放上yield,那么循环不会立即结束

(5)每当执行到yield的时候就会停在那里,跳到foreach中

(6)foreach执行到in的时候,又会跳到上次停留的yield那里,继续向下执行

(7)直到下一个yield,再次调用foreach

            public IEnumerator GetEnumerator()

            {

                   for(int i=0;i<arr.Count;i++)

                   {

                          yield return arr[i];

                   }

            }

  1. Hashtable 字典集合

(1) 举例说明:

           Hashtable has = new Hashtable();

            has.Add("BigBoss", "韩迎龙");

            has.Add("sdd", "的事实");

            has.Add("dfd", "的速度");

            Console.WriteLine(has["BigBoss"]);

     (2)Hashtable的使用,实现一个电子词典     

     (3)如何遍历?

     (4)var 类型推断

            1)var val=数据;

            2)赋什么数据就是什么类型

            3)类型确定以后就不能变了

            4)必须保证类型赋值时时确定的

            5)何时使用类型推断

                   ->匿名类型

                   ->Linq查询

posted @   Kencery  阅读(2728)  评论(1编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
友情链接:初心商城
点击右上角即可分享
微信分享提示