c#学习笔记05——数组&集合
- 数组
- 声明数组
.一维数组的定义:
数据类型[] 数组名=new 数据类型[大小];
eg:
int[] num=new int[];
int[] num={,,,,};
string[] str=new string[];
.多维数组的定义
int[,] num=new int[,];//定义二维数组
int[,,] num=new int[,,];//定义三维数组
多维数组可以理解为每个元素自身是一个数组的一维数组,这种情况下数组又称为交错数组,交错数组的声明:
int[][] jaggedArray=new int[][]; - 初始化数组
//一位数值数组
int[] n1=new int[] {,,,};
int[] n2=new int[]{,,,};
int[] n3={,,,};
//一维字符数组
string[] s1=new string[]{"john","Paul","Mary"};
string[] s2=new string[]{"john","Paul","Mary"};
string[] s3={"john","Paul","Mary"}; //多维数组
int[,] n4=new int[,] {{,},{,},{,}};
int[,] n5=new int[,] {{,},{,},{,}};
int[,] n6={{,},{,},{,}}; //交错数组
int[][] n7=new int[][]{new int[]{,,},new int[]{,,,,}};
int[][] n8=new int[][]{new int[]{,,},new int[]{,,,,}};
int[][]n9={new int[]{,,},new int[]{,,,,}}; - 访问单独的数组元素:数组可以通过索引来访问其中的数据,数组的索引是从0开始,也就是第一个元素对应的索引值为0,后面的逐个递增,访问的方式如下:数组名[索引值];
//一维数值数组
int[] n1=new int[]{,,,};
int a=n1[];//第一个元素 //多维数组
int[,] n4=int new[,] {{,},{,},{,}};
int e=n4[,];//第1行1列元素 //交错数组
int[][] n7=new int[][]{new int[]{,,},new int[]{,,,,}};
int g=n7[][];//第2行3列元素 - 遍历数组
()可以使用foreach语句遍历数组
//一维数值数组
int[] n1=new int[]{,,,};
foreach(int i in n1)
{
System.Console.Write("{0}",i);
}
//二维数组
int[,]n4=new int[,]{{,},{,},{,}};
foreach(int i in n4)
{
System.Console.Write("{0}",i);
}
Console.WriteLine(" ");
()使用for循环遍历数组
//一维数值数组
int[] n1=new int[]{,,,};
for(int i=;i<n1.Length;i++)
{
Console.WriteLine(n1[i]);
}
//二维数组
for(int i=;i<n4.GetLength();i++)//遍历行
{
for(int j=;j<n4.GetLength();j++)//遍历列
{
Console.Write(n4[i,j]);
Console.Write(" ");
}
}
Console.WriteLine(" ");
()使用Ienumerator接口遍历数组
//一位数值数组
int[] n1=new int[]{,,,};
Ienumberator eed=n1.GetEnmerator();
while(eed.MoveNext())
{
Console.WriteLine(eed.Current.ToString());
}
//二维数组
Ienumberator eed=n4.GetEnumberator();
while(eed.MoveNext())
{
Console.Write(eed.Current.ToString());
Console.Write(" ");
} - Array类:在C#中,声明的数组在后台会被创建上一个派生子抽象类Array的新类,这样数组就可以使用Array类为每个C#数组定义的方法和属性。
- 集合:集合如同,用来存储和管理一组特定类型的数据结构对象,不过,与数组不同的是,集合除了基本的数据处理功能外,还提供了各种数据结构及算法的实现,如队列,链表,排序等。在C#中集合类是命名空间System.Collections或System.Collection.Generic的一部分,而且需要实现一个或多个Icollection、Icomparer、Ienumerable、Ilist、IdictionaryEnumerator接口以及它们的等效泛型接口。
- 命名空间System.Collections中的集合可以分为如下3种:
- 常用集合:数据集合的常见变体,如哈希表,队列,堆栈,字典和列表。常用集合有泛型和非泛型之分。
- 有序集合
- 索引集合
- 键式集合
- 位集合:这些集合中的元素均为位标识。它们的行为与其他集合稍有不同。
- 专用集合:这些集合都具有专门的用途,通常用于处理特定的元素类型,如StringDictionary.
- ArrayList集合类:用于实现可以动态的添加元素的数据链表,也就是其大小可以按需进行动态的增加。
- Queue集合类:表队列
- Stack集合类:表堆栈
- Hashtable集合类:表示键/值(key/value)对的集合,这些键/值对根据键的哈希代码进行组织。Key区分大小写
c#学习笔记05——数组&集合的更多相关文章
- 学习笔记 07 --- JUC集合
学习笔记 07 --- JUC集合 在讲JUC集合之前我们先总结一下Java的集合框架,主要包含Collection集合和Map类.Collection集合又能够划分为LIst和Set. 1. Lis ...
- PHP学习笔记之数组篇
摘要:其实PHP中的数组和JavaScript中的数组很相似,就是一系列键值对的集合.... 转载请注明来源:PHP学习笔记之数组篇 一.如何定义数组:在PHP中创建数组主要有两种方式,下面就让我 ...
- JavaScript学习笔记之数组(二)
JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...
- 机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归
机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归 关键字:Logistic回归.python.源码解析.测试作者:米仓山下时间:2018- ...
- C++ GUI Qt4学习笔记05
C++ GUI Qt4学习笔记05 qtc++正则表达式 QIntValidator -- 只让用户输入整数 QDoubleValidator -- 只让用户输入浮 ...
- Scala入门学习笔记三--数组使用
前言 本篇主要讲Scala的Array.BufferArray.List,更多教程请参考:Scala教程 本篇知识点概括 若长度固定则使用Array,若长度可能有 变化则使用ArrayBuffer 提 ...
- go 学习笔记之数组还是切片都没什么不一样
上篇文章中详细介绍了 Go 的基础语言,指出了 Go 和其他主流的编程语言的差异性,比较侧重于语法细节,相信只要稍加记忆就能轻松从已有的编程语言切换到 Go 语言的编程习惯中,尽管这种切换可能并不是特 ...
- JavaScript学习笔记:数组reduce()和reduceRight()方法
很多时候需要累加数组项的得到一个值(比如说求和).如果你碰到一个类似的问题,你想到的方法是什么呢?会不会和我一样,想到的就是使用for或while循环,对数组进行迭代,依次将他们的值加起来.比如: v ...
- [Golang学习笔记] 07 数组和切片
01-06回顾: Go语言开发环境配置, 常用源码文件写法, 程序实体(尤其是变量)及其相关各种概念和编程技巧: 类型推断,变量重声明,可重名变量,类型推断,类型转换,别名类型和潜在类型 数组: 数组 ...
随机推荐
- 干货分享:Academic Essay写作套路详解
你想过如何中立的表达自己吗?大概只有10%不到的同学,会真正重视这个细节.但很多留学生能顺利写完作文已经不容易,还要注意什么中立不中立的.我知道这个标准,对许多同学有些过分,但很残酷的告诉你,这的确是 ...
- oracle中设置主键
1.创建表 .创建表 create table "c_user"( "id" number primary key, "username" ...
- Ubuntu 安装phpmyadmin (9.17第六天)
PhpMyAdmin 是一个用 PHP 编写的软件工具,可以通过 web方式控制和操作 MySQL 数据库.通过 phpMyAdmin 可以完全对数据库进行操作,例如建立.复制和删除数据等等,这样 M ...
- POJ 2251 Dungeon Master(三维空间bfs)
题意:三维空间求最短路,可前后左右上下移动. 分析:开三维数组即可. #include<cstdio> #include<cstring> #include<queue& ...
- 基于UWB技术的DW1000芯片简单解析
近些年来随着物联网和机器人技术的大发展,精确定位技术的热度也随之攀升.目前精确定位的技术有很多,如基于wifi.RFID.zigbee.超声波.UWB等技术都可以实现精准定位.由于技术的不同,精度也不 ...
- UVA 11992 懒惰标记应用
这个题目要求和 还有 设置区间值 区间增值,明显要用线段树来 由于行数不超过20 而列数多达 10^5,所以对每一行建一棵线段树. 然后主要是在懒惰标记方面是难点 针对两种操作 分别设置 set 和 ...
- 201903-2 二十四点 Java
思路: 数据结构中,栈可以解决运算的问题.利用压栈和弹栈操作实现(这里用队列模拟).具体的: 遇到乘除号,弹出栈顶元素,将计算结果压入栈中.遇到加减号,将后面的数一起压入栈中. 注意: substri ...
- 一天一个设计模式——Strategy策略模式
一.模式说明 策略模式比较好理解,就是将程序中用到的算法整体的拿出来,并有多个不同版本的算法实现,在程序运行阶段,动态的决定使用哪个算法来解决问题. 举个实际的例子:排序算法的问题,假如我们的程序中需 ...
- 2020/1/31 PHP代码审计之文件包含漏洞
0x00 文件包含简介 文件包含漏洞的产生原因是在通过引入文件时,引用的文件名,用户可控,由于传入的文件名没有经过合理的校检,或者校验被绕过,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意 ...
- 7. react 基础 - React Developer Tools 的安装 及 使用
1. 安装 react 开发调试工具 React Developer Tools 打开 chrome 浏览器访问 chrome://extensions/ 点击右上角的 拓展程序 -> 打开 c ...