C# 二维数组初始化与操作示例
需积分: 12 125 浏览量
更新于2024-09-18
收藏 3KB TXT 举报
"C#语言中的二维数组创建与操作"
在C#中,二维数组是一种特殊的数组,它由多个一维数组组成,可以用来存储多行多列的数据。本资源主要介绍了如何创建和操作二维数组。
首先,创建一个二维数组的基本语法如下:
```csharp
dataType[,] arrayName = new dataType[rows, columns];
```
在这个例子中,`dataType`是数组元素的数据类型,`arrayName`是你为数组起的名字,`rows`是数组的行数,而`columns`是列数。
例如,创建一个2行14列的整数二维数组可以这样写:
```csharp
int[][] arr = new int[2][14];
```
然后,你可以通过嵌套循环来初始化数组的每个元素。在提供的代码中,使用了两个for循环来填充数组的值:
```csharp
for (int i = 0; i < 2; i++)
{
for (int n = 0; n < 14; n++)
{
arr[i][n] = "要赋的值";
}
}
```
这里的"要赋的值"应当替换为你实际要赋给数组元素的值。
除了初始化,还可以进行更复杂的操作,如对二维数组进行算术运算。示例中定义了一个名为`add`的方法,用于将两个同样大小的二维数组相加。方法接收两个二维数组(a1和a2)以及它们的维度(width和height)作为参数,并返回一个新的二维数组,其元素是输入数组对应位置元素的和。如果输入的数组尺寸不匹配,方法会返回null。
```csharp
private int[,] add(int[,] a1, int[,] a2, int width, int height)
{
if (a1.GetLength(0) != width || a1.GetLength(1) != height || a2.GetLength(0) != width || a2.GetLength(1) != height)
return null;
int[,] a3 = new int[width, height];
for (int i = 0; i < width; i++)
for (int j = 0; j < height; j++)
a3[i, j] = a1[i, j] + a2[i, j];
return a3;
}
```
接下来,定义了两个3x3的二维数组`a1`和`a2`,并调用`add`方法将它们相加,结果存储在`a3`中。如果`a3`不为null,程序将遍历并显示`a3`的所有元素。
```csharp
int[,] a1 = new int[,] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
int[,] a2 = new int[,] { { 9, 8, 7 }, { 6, 5, 4 }, { 3, 2, 1 } };
int[,] a3;
a3 = add(a1, a2, 3, 3);
if (a3 == null)
return;
string s = "";
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
s += a3[i, j].ToString() + " ";
}
s += "\n";
}
MessageBox.Show(s);
```
这段代码展示了如何通过遍历二维数组并使用`ToString()`方法将其元素转换为字符串,以便在消息框中显示。
总结来说,C#中的二维数组提供了处理多行多列数据的能力,可以通过初始化、算术运算和遍历等方法进行操作。理解这些基本概念和操作对于编写涉及矩阵或表格数据的C#程序至关重要。
2011-06-27 上传
2023-06-10 上传
2023-06-01 上传
2023-05-28 上传
2023-11-21 上传
2023-05-24 上传
2023-11-25 上传
2024-03-28 上传
wo362
- 粉丝: 0
- 资源: 17
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全