C#.net技术内幕04-集合

简介:
  1.   锯齿数组: 锯齿数组就是数组的数组。例如:

 

Int[] a = new   int [][]{
         New 
int []{ 1 1 1 };
          New 
int []{ 23 12 };
}

    2.Out与ref:将数组作为参数传递时,在调用函数之前不需要初始化out参数,但调用的函数必须在返回前分配数组类型。而且,ref参数必须在函数调用之前分配。

  

    3. 枚举数(enumerator):

    它是一个对象,可以通过它对集合项进行便利。枚举数只能读取但不能改变集合的至。在实例化后,会被放在集合第一个元素之前。如果不调用movenexe就直接使用current访问的话会出错。当枚举数到达集合的末尾时,会停留在集合的最后一个元素后面,并返回假。如果此时继续使用current也会出错。

    主要方法属性:

  • current返回集合中的当前对象;
  • Movenext 将枚举项后移一项;
  • Reset 将枚举数移到初始位置。

    4.几种常用的集合:

   AArraylisy:使用add,remove等对元素进行操作。

  

View Code

 

   BStack:是一种后进先出结构。有push。Pop。peek三种方法。

 

View Code

 

CHashtable:这是一种键值对集合。该集合与前面的两种集合不太一样,我写了段简单代码试了一下,发现了一下几点:

首先他得到的并不是原来输入的顺序,而是进行散列后的值;

还有使用枚举数的时候不再是Ienumerator,而是IdictionaryEnumerator;

最后,在使用枚举数读取值的时候不再是en.current,而是en.value。

 

View Code

 

DBitarray:一组真假值的集合。遍历的方法与arraylist以及stack相同。

要注意以下几点:

首先bitarray实例化时必须声明其长度;

其次,为其添加元素时用的方法是set;

最后,遍历时使用的枚举数仍未Ienumerator。

 

View Code

     ESortedlist:这种用法和hashtable与arraylist有点像。

首先,添加元素用的是ADD方法,添加的是键值对;

其次,遍历时使用的枚举数和Hahstable比较像。读取的时候既可以根据键值读取,也可以根据索引值读取。

 

View Code

 

   F:queue这是一种先进先出队列结构。入队方法为enqueque ,出队方法为dequeque。枚举数遍历方式使用Ienumerator,

 

复制代码
protected   static   void  queue()

        {
            Queue q 
=   new  Queue();
            
for  ( int  i  =   0 ; i  <   5 ; i ++ )
            q.Enqueue(i.ToString());
            enumerator(q );
            q.Dequeue();
            enumerator(q);
        }

        
protected   static   void  enumerator(Queue q) // 使用枚举数遍历queue集合
        {
            IEnumerator en 
=  q.GetEnumerator();
            
while  (en.MoveNext()){
            Console.Write(en.Current);
            Console.WriteLine();}
        }
    
复制代码
相关文章
|
人工智能 运维 算法
基于 C# 深度优先搜索算法的局域网集中管理软件技术剖析
现代化办公环境中,局域网集中管理软件是保障企业网络高效运行、实现资源合理分配以及强化信息安全管控的核心工具。此类软件需应对复杂的网络拓扑结构、海量的设备信息及多样化的用户操作,而数据结构与算法正是支撑其强大功能的基石。本文将深入剖析深度优先搜索(Depth-First Search,DFS)算法,并结合 C# 语言特性,详细阐述其在局域网集中管理软件中的应用与实现。
306 3
|
10月前
|
监控 Cloud Native 测试技术
.NET技术深度解析:现代企业级开发指南
每日激励:“不要一直责怪过去的自己,他曾经站在雾里也很迷茫”。我是蒋星熠Jaxonic,一名在代码宇宙中探索的极客旅人。从.NET Framework到.NET 8,我深耕跨平台、高性能、云原生开发,践行领域驱动设计与微服务架构,用代码书写技术诗篇。分享架构演进、性能优化与AI融合前沿,助力开发者在二进制星河中逐光前行。关注我,共探技术无限可能!
.NET技术深度解析:现代企业级开发指南
|
Java 测试技术 C#
浅谈 C# 13 中的 params 集合
浅谈 C# 13 中的 params 集合
338 5
|
缓存 监控 算法
基于 C# 网络套接字算法的局域网实时监控技术探究
在数字化办公与网络安全需求增长的背景下,局域网实时监控成为企业管理和安全防护的关键。本文介绍C#网络套接字算法在局域网实时监控中的应用,涵盖套接字创建、绑定监听、连接建立和数据传输等操作,并通过代码示例展示其实现方式。服务端和客户端通过套接字进行屏幕截图等数据的实时传输,保障网络稳定与信息安全。同时,文章探讨了算法的优缺点及优化方向,如异步编程、数据压缩与缓存、错误处理与重传机制,以提升系统性能。
370 2
|
Web App开发 Linux C#
C# 网页截图全攻略:三种技术与 Chrome 路径查找指南
本文主要介绍了在 C# 中实现网页截图的几种技术及相关要点。涵盖了 PuppeteerSharp、Selenium 和 HtmlToImage 三种方式,分别阐述了它们的安装步骤及核心代码。同时,针对在 C# 中寻找 Windows 上 chrome.exe 路径这一问题,分析了未安装 Google Chrome 和已安装两种情况下的查找原因,并给出了相关参考链接,还列举了一系列与 C# 使用 Selenium、获取 chrome.exe 路径以及在 Linux 上部署相关的参考资料。
607 11
|
SQL 小程序 API
如何运用C#.NET技术快速开发一套掌上医院系统?
本方案基于C#.NET技术快速构建掌上医院系统,结合模块化开发理念与医院信息化需求。核心功能涵盖用户端的预约挂号、在线问诊、报告查询等,以及管理端的排班管理和数据统计。采用.NET Core Web API与uni-app实现前后端分离,支持跨平台小程序开发。数据库选用SQL Server 2012,并通过读写分离与索引优化提升性能。部署方案包括Windows Server与负载均衡设计,确保高可用性。同时针对API差异、数据库老化及高并发等问题制定应对措施,保障系统稳定运行。推荐使用Postman、Redgate等工具辅助开发,提升效率与质量。
648 0
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
308 11
|
开发框架 人工智能 .NET
C#/.NET/.NET Core拾遗补漏合集(24年12月更新)
C#/.NET/.NET Core拾遗补漏合集(24年12月更新)
311 6
|
开发框架 算法 .NET
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
330 6
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
800 5