C# 数组及集合

news/2024/11/8 17:38:20/

一 数组

声明:
int [] a;
int [,]b;
分配空间:
a=new int[5];
b=new int[4,5];

二 集合类

System.Collections命名空间;
数组列表ArrayList
相当于动态数组,实现IList;
哈希表 Hashtable
相当于键/值的集合,实现IDictionary;
用[] 进行访问,表示获取,增加、删除、修改;
提示:
用于查询时,比线性搜索的效率更高,可用于程序的优化;
栈和队列 Stack Queue;

三 使用foreach 访问数组及集合

foreach(类型 变量 in xxxx)
其中xxxx必须是实现了实现IEnumerable接口或含有GetEnumerator方法的类型;
这个方法的原型是IEnumerator GetEnumerator();
返回的是一个接口IEnumerator
Current属性
MoveNext及Reset方法;

四 泛型集合

泛型具有更好的类型检查及性能
System.Collections.Generic名称空间
列表 List/LinkedList SortedList
字典 Dictionary SortedDictionary;
集 HashSet SortedSet
栈,队列 Stack,Queue;

示例

1 ListTest

List 的Add方法,Count属性,[i]索引器;
foreach的遍历;

2 HashtableTest

HashTable的[] 索引,可以表示获取/加入/修改/删除(置为null)
Foreach遍历;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace 使用List
{public class ListTest{public static void Main(){List<string> fruits = new List<string>();fruits.Add("Apple");fruits.Add("Banana");fruits.Add("Carrot");Console.WriteLine("Count:{0}", fruits.Count);PrintValues1(fruits);PrintValues2(fruits);PrintValues3(fruits);Console.ReadKey();}static void PrintValues1(IList<string>myList){for (int i = 0; i < myList.Count; i++)Console.Write("{0}\n", myList[i]);}static void PrintValues2(IList<string>myList){foreach (string item in myList)Console.Write("{0}\n", item);}static void PrintValues3(IEnumerable<string>myList){IEnumerator<string> myEnumerator = myList.GetEnumerator();while (myEnumerator.MoveNext())Console.Write("{0}\n", myEnumerator.Current);Console.WriteLine();}}
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace 使用Hashtable
{internal class Class1{public static void Main(){Hashtable myHT = new Hashtable();myHT.Add("Ton V.Bergyk", "023-010-66757");myHT.Add("Tom sony", "086-010-27654");myHT.Add("Mr.John", "071-222-33445");myHT["mr.John"] = "071-222-33445";//加入或修改PrintKeysAndValues(myHT);PrintByKeys(myHT);Console.ReadKey();}public static void PrintKeysAndValues(Hashtable myList){IDictionaryEnumerator myEnumerator = myList.GetEnumerator();while (myEnumerator.MoveNext())Console.WriteLine("\\t{0}:t{1}",myEnumerator.Key, myEnumerator.Value);Console.WriteLine();}public static void PrintByKeys(Hashtable myList){IEnumerator ie = myList.Keys.GetEnumerator();while (ie.MoveNext()){object key = ie.Current;object value = myList[key];Console.WriteLine("\t{0}:\t{1}", key, value);}Console.WriteLine();foreach (string key in myList.Keys){Console.WriteLine("\t{0}:\t{1}", key, myList[key]);}}}
}

http://www.ppmy.cn/news/3539.html

相关文章

[ Linux ] 线程控制(线程创建,等待,终止)

在上一篇我们了解了Linux下线程的相关概念。而本篇的主要内容是线程控制。线程控制包括线程的创建&#xff0c;线程的终止&#xff0c;线程等待等问题&#xff0c;以及线程分离和Linux常见线程安全问题。 目录 1.线程控制 1.1POSIX线程库 1.2 创建线程 1.2.1 创建线程编码…

Python函数、类和对象、流程控制语句if-else while的讲解及演示(图文解释 附源码)

一、函数 函数是完成某个功能的代码段&#xff0c;可被其他代码调用&#xff0c;调用的代码可以将数据传递给函数&#xff0c;函数可将对数据的处理结果返回给调用代码。 def mysubt( a, b 0 ): # 定义一个自己的减法函数&#xff0c;第二个参数为默认值为0的默认参数c a -…

思科复习实验,含dhcp,三层交换机,ospf

♥️作者&#xff1a;小刘在这里 ♥️每天分享云计算网络运维课堂笔记&#xff0c;疫情之下&#xff0c;你我素未谋面&#xff0c;但你一定要平平安安&#xff0c;一 起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的&#xff0c;绽放&#xff0c;…

Splunk Deployer 发布App 找不到capitain

1: 背景: 今天通过新部署的 Deployer 发布app 的时候,报找不到search head capitain 的错: Error while deploying apps to target=https://abc.com:8089: No captain found amongst members 2: 查找原因: 后来到这个deployer 的log: /opt/splunk/var/log/splunk/splun…

jdk1.8下载与安装教程(win11)

一、JDK下载 1.首先在Oracle官网上下载jdk1.8 打开官网&#xff1a;https://www.oracle.com/ 2.选择Developer Services的Java 3.选择Oracle JDK 4.选择Java8 Window点击&#xff1a; jdk-8u351-windows-x64.exe下载 5.接受Oracle Java SE的Oracle技术网络许可协议 …

DPDK源码分析之rte_eal_init

EAL是什么 环境抽象层(EAL)负责获得对底层资源(如硬件和内存空间)的访问。对于应用程序和其他库来说&#xff0c;使用这个通用接口可以不用关系具体操作系统的环境细节。rte_eal_init初始化例程负责决定如何分配操作系统的这些资源(即内存空间、设备、定时器、控制台等等)。 …

QA | SWCF2022 笔记:C波段卫星与5G之间的干扰排查及解决方案

2022年度SWCF卫星通信与仿真测试研讨会正在进行中。昨日精彩演讲&#xff1a;C波段卫星与5G之间的干扰排查及解决方案&#xff0c;昨晚收到一些粉丝的技术问题&#xff0c;我们汇总了热点问题并请讲师详细解答。 演讲主题&#xff1a;C波段卫星与5G之间的干扰排查及解决方案 干…

多态——C++第三大特性

目录 一、多态的概念 1、概念 二、多态的定义及实现 1、构成条件 2、虚函数 3、虚函数的重写 4、C11提供了override和final两个关键字&#xff0c;可以帮助用户检测是否重写 5、重载、覆盖&#xff08;重写&#xff09;、隐藏&#xff08;重定义&#xff09;的对比 三、…