string二维数组转一维
时间: 2025-05-16 20:40:23 浏览: 11
将一个 `string` 类型的二维数组转换为一维数组的过程相对直观,主要是通过遍历二维数组的所有元素,并按照一定顺序依次存入新的一维数组中。下面是详细的步骤以及示例代码:
---
### 示例场景
假设我们有一个如下所示的字符串二维数组:
```csharp
string[,] twoDimArray = new string[,]
{
{"apple", "banana"},
{"cherry", "date"}
};
```
我们的目标是将其转化为一个一维数组:
```csharp
string[] oneDimArray = { "apple", "banana", "cherry", "date" };
```
---
### 实现方法
我们可以手动计算出二维数组中的总元素数量并创建相应长度的一维数组,接着通过双重循环来填充值。
#### 步骤解析:
1. **获取二维数组的行列信息**:利用 `.GetLength(0)` 获取行数,`.GetLength(1)` 获取列数;
2. **确定新一维数组的容量**:行数 * 列数即可得出需要存储的元素总数;
3. **使用双重循环赋值**:外层控制行索引,内层控制列索引,逐一读取二维数组元素存入一维数组。
以下是完整的代码实现:
```csharp
using System;
public class Program
{
public static void Main()
{
// 初始化一个二维字符串数组
string[,] twoDimArray = new string[,]
{
{"apple", "banana"},
{"cherry", "date"}
};
// 计算所需空间大小
int rows = twoDimArray.GetLength(0); // 行数
int cols = twoDimArray.GetLength(1); // 列数
// 新建匹配尺寸的一维数组
string[] oneDimArray = new string[rows * cols];
// 遍历二维数组并将数据转移到一维数组
int index = 0; // 控制一维数组的位置指针
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
oneDimArray[index] = twoDimArray[i, j];
index++;
}
}
// 显示结果验证正确性
Console.WriteLine("转化后的一维数组内容:");
foreach (var str in oneDimArray)
{
Console.WriteLine(str);
}
}
}
```
运行该程序将会按预期输出:
```
转化后的一维数组内容:
apple
banana
cherry
date
```
---
### 其他注意事项
如果二维数组非规则矩阵形式(如某一行比其他行长),则需要注意边界条件判断以防越界异常发生。
此外,在实际项目开发中也可以考虑运用 LINQ 等高级特性进一步优化代码简洁度与可读性。
---
阅读全文
相关推荐

















