文章目录

  • 1. 一维数组
  • 2. 二维数组
    • 2.1 二维数的组赋值和遍历
    • 2.2 输出矩阵
  • 3. 交错数组
    • 3.1 创建一个交错数组
    • 3.2 创建一个交错数组并赋值
    • 3.2 交错数组遍历
    • 3.3 交错数组矩阵输出
    • 3.4 使用交错数组(数组嵌套)输出一首诗
  • 4. 二维数组和交错数组的对比

1. 一维数组

  /** 一维数组 */// 初始化一个含有5个int型元素的数组int[] a = new int[5];// 初始化数组中的元素for (int i = 0; i < a.Length; i++){a[i] = i + 10;}// foreach遍历int index = 0;foreach (int e in a){Console.WriteLine("index:{0},element:{1}", index, e);index++;}Console.WriteLine("\n");// for循环遍历for (int i = 0; i < a.Length; i++){Console.WriteLine("index:{0},element:{1}", i, a[i]);}

2. 二维数组

2.1 二维数的组赋值和遍历

/** 二维数组练习一 */// 初始化
int[,] n = new int[3, 4];// 赋值
for (int i = 0; i < n.GetLength(0); i++)
{for (int j = 0; j < n.GetLength(1); j++){n[i, j] = i + j;}
}// 遍历
for (int i = 0; i < n.GetLength(0); i++)
{for (int j = 0; j < n.GetLength(1); j++){Console.WriteLine("({0},{1}):{2}", i, j, n[i, j]);}
}

打印如下:

(0,0):0
(0,1):1
(0,2):2
(0,3):3
(1,0):1
(1,1):2
(1,2):3
(1,3):4
(2,0):2
(2,1):3
(2,2):4
(2,3):5

2.2 输出矩阵

// 初始化
int[,] n = new int[3, 4];// 赋值
for (int i = 0; i < n.GetLength(0); i++)
{for (int j = 0; j < n.GetLength(1); j++){n[i, j] = i + j;}
}// 遍历
for (int i = 0; i < n.GetLength(0); i++)
{for (int j = 0; j < n.GetLength(1); j++){Console.Write(n[i, j] + "\t"); // 横向输出if (j == 3) {        Console.Write("\n");  // 换行}}
}

打印如下:

0    1   2   3
1   2   3   4
2   3   4   5   Press any key to continue...

3. 交错数组

3.1 创建一个交错数组

int[][] scores = new int[5][];
for (int i = 0; i < scores.Length; i++)
{scores[i] = new int[4];
}

实际上是数组嵌套,数组嵌套数组,即数组的每个元素又是一个数组,所以初始化完数组后,初始化每个数组元素。

3.2 创建一个交错数组并赋值

int[][] scores = new int[2][]{new int[]{92,93,94},new int[]{85,66,87,88}};

scores这个数组里面嵌套了三个数组。

3.2 交错数组遍历

 // 初始化交错数组int[][] scores = new int[2][]{new int[]{92,93,94},new int[]{85,66,87,88}};// 遍历foreach (int[] arr in scores) {foreach (int i in arr ) {Console.Write("{0},",i);}}

打印如下:

92,93,94,85,66,87,88,

3.3 交错数组矩阵输出

  • 使用foreach
// 初始化交错数组
int[][] scores = new int[2][]
{new int[]{92,93,94},new int[]{85,66,87,88}
};
//
foreach (int[] arr in scores)
{int index = 0;foreach (int i in arr){Console.Write("{0} ", i);if (index == arr.Length - 1){Console.Write("\n");}index++;}
}

打印如下:

92 93 94
85 66 87 88 Press any key to continue...
  • 使用for循环
for (int i = 0; i < scores.GetLength(0); i++)
{for (int j = 0; j < scores[i].Length; j++){Console.Write("{0} ", scores[i][j]);if (j == scores[i].Length - 1){Console.Write("\n");}}
}

3.4 使用交错数组(数组嵌套)输出一首诗

char[][] arr = new char[4][];
arr[0] = new char[] { '春', '眠', '不', '觉', '晓' };
arr[1] = new char[] { '处', '处', '闻', '啼', '鸟' };
arr[2] = new char[] { '夜', '来', '风', '语', '声' };
arr[3] = new char[] { '花', '落', '知', '多', '少' };for (int i = 0; i < arr.GetLength(0); i++)
{for (int j = 0; j < arr[i].Length; j++){Console.Write(arr[i][j] + "\t"); // 横向输出if (j == arr[i].Length-1){Console.Write("\n"); // 横向输出}}
}

打印如下:

春    眠   不   觉   晓
处   处   闻   啼   鸟
夜   来   风   语   声
花   落   知   多   少   Press any key to continue...

4. 二维数组和交错数组的对比

很容易会搞混,所以对比看一下

  • 初始化
// 二维数组
int[,] a = new int[5, 2]
{   { 0, 0 },{ 1, 2 },{ 2, 4 },{ 3, 6 },{ 4, 8 }
};// 交错数组
int[][] b = new int[][]
{new int[]{ 0,0},new int[]{ 1,2},new int[]{ 2,4},new int[]{ 3,6},new int[]{ 4,8},
};
  • 取值
// 二维数组取值//a[0,0];  // 报错
//a[0][0]; // 报错
int eleme = a[0, 0];// 交错数组取值//b[0]; // 报错
int[] tempArr = b[0];   // ✔️
//b[0][0]; // 报错
int temp = b[0][0];     // ✔️

C# 学习笔记(十)数组练习相关推荐

  1. Python语言入门这一篇就够了-学习笔记(十二万字)

    Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...

  2. Polyworks脚本开发学习笔记(十)-互动式开发及出错控制

    Polyworks脚本开发学习笔记(十)-互动式开发及出错控制 第八章组合的各种命令,完成了一个对所选的测点名称进行命名的任务.但是,由于任务中没有交互环节,只能机械地将 曲面点 - 包边点改为Flu ...

  3. Polyworks脚本开发学习笔记(十二)-输出和读取文本文件

    Polyworks脚本开发学习笔记(十二)-输出和读取文本文件 Polyworks作为一个测量工具,将测量的数据方便的导出到文本文件则是一项必须的功能.在DATA_FILE这个命令下提供了很多子命令用 ...

  4. OpenCV学习笔记(十二)——图像分割与提取

    在图像处理的过程中,经常需要从图像中将前景对象作为目标图像分割或者提取出来.例如,在视频监控中,观测到的是固定背景下的视频内容,而我们对背景本身并无兴趣,感兴趣的是背景中出现的车辆.行人或者其他对象. ...

  5. JavaScript学习笔记之数组(二)

    JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...

  6. IOS之学习笔记十五(协议和委托的使用)

    1.协议和委托的使用 1).协议可以看下我的这篇博客 IOS之学习笔记十四(协议的定义和实现) https://blog.csdn.net/u011068702/article/details/809 ...

  7. 吴恩达《机器学习》学习笔记十四——应用机器学习的建议实现一个机器学习模型的改进

    吴恩达<机器学习>学习笔记十四--应用机器学习的建议实现一个机器学习模型的改进 一.任务介绍 二.代码实现 1.准备数据 2.代价函数 3.梯度计算 4.带有正则化的代价函数和梯度计算 5 ...

  8. 吴恩达《机器学习》学习笔记十二——机器学习系统

    吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...

  9. 吴恩达《机器学习》学习笔记十——神经网络相关(2)

    吴恩达<机器学习>学习笔记十--神经网络相关(2) 一. 代价函数 二. 反向传播算法 三. 理解反向传播算法 四. 梯度检测 五. 随机初始化 1.全部初始化为0的问题 2.随机初始化的 ...

  10. Mr.J-- jQuery学习笔记(十九)--自定义动画实现图标特效

    之前有写过自定义动画Mr.J-- jQuery学习笔记(十八)--自定义动画 这次实现一个小demo 图标特效 页面渲染 <!DOCTYPE html> <html lang=&qu ...

最新文章

  1. [开发]Resin 4.0.15重启时常见问题
  2. python常用内置函数汇总_太全了!Python3常用内置函数总结
  3. 什么样的征信才算是好的?
  4. Java 和 Android系统环境变量设置
  5. 复杂的权限按钮控制优化
  6. Dr.COM 宽带认证客户端频繁掉线问题解决方案
  7. QQ概念版(WPF制作)
  8. 深圳医保社保的使用方法
  9. 小米,红米 root Magisk(面具)安装教程
  10. Bootstrap Table Fixed Columns
  11. java dns缓存清理_清除DNS缓存信息方法
  12. 小程序错误:Setting data field collected to undefined is invalid.
  13. 【学习记录】图片行列切割与子图行列拼接之中央裁剪法
  14. wifi密码公式计算机,用定积分知识破译wifi密码,数学知识什么时候能派上用场?...
  15. 手游各个平台开接入发者中心网址汇总
  16. SATA硬盘和IDE硬盘区别及优劣比较
  17. Substance的置换效果
  18. excel 根据起始日期计算到期日
  19. 成立智能计算事业部,华为在下什么大棋?
  20. 6-3 结构体的最值 (5分)##C语言

热门文章

  1. 第二章 python系统监控
  2. [唯一索引允许为空]的说法是不严谨的
  3. Linux uart驱动文件,linux终端设备uart驱动分析
  4. cocos creator ios回调js代码传入中文参数出现乱码的解决
  5. 盘点现代黑客常用的十种技术
  6. tinyMediaManager 无法使用?2022.10.26
  7. SSM添加p6spy
  8. 01_I.MX6U芯片简介
  9. Go基于I/O多路复用的TCP协议流解析实践
  10. 使用Rocketeer部署PHP应用程序