c# 清空数组
时间: 2025-08-04 14:20:27 浏览: 9
在 C# 中,清空数组的方式取决于你使用的数组类型(**一维数组、多维数组、交错数组(jagged array)、List<T>** 等)。以下是几种常见的清空数组的方法:
---
## ✅ 1. 清空一维数组
### 方法一:重新初始化数组
```csharp
int[] myArray = { 1, 2, 3, 4, 5 };
myArray = new int[0]; // 清空数组
```
### 方法二:设置为 null(慎用)
```csharp
myArray = null; // 将变量设为 null,原数组由 GC 回收
```
### 方法三:将数组元素设为默认值(不清空长度)
如果你不想改变数组长度,只是清空内容:
```csharp
Array.Clear(myArray, 0, myArray.Length);
```
---
## ✅ 2. 清空二维数组(矩形数组)
```csharp
int[,] matrix = new int[,] { { 1, 2 }, { 3, 4 } };
Array.Clear(matrix, 0, matrix.Length); // 清空所有元素
```
---
## ✅ 3. 清空交错数组(jagged array)
```csharp
int[][] jaggedArray = new int[][] {
new int[] { 1, 2 },
new int[] { 3, 4 }
};
for (int i = 0; i < jaggedArray.Length; i++)
{
jaggedArray[i] = new int[0]; // 每个子数组清空
}
```
或者直接重新初始化:
```csharp
jaggedArray = new int[0][];
```
---
## ✅ 4. 清空 List<T>(动态数组)
如果你使用的是 `List<T>`,推荐使用以下方式:
```csharp
List<int> myList = new List<int> { 1, 2, 3 };
myList.Clear(); // 清空列表内容
```
如果你希望释放内存,也可以重新初始化:
```csharp
myList = new List<int>(); // 重新创建空列表
```
---
## ✅ 5. 清空字符串数组
```csharp
string[] strArray = { "a", "b", "c" };
strArray = new string[0]; // 清空
```
或者使用 `Array.Clear`
```csharp
Array.Clear(strArray, 0, strArray.Length);
```
---
## ✅ 6. 清空对象数组
```csharp
Person[] people = new Person[] { new Person("Alice"), new Person("Bob") };
Array.Clear(people, 0, people.Length); // 所有引用置为 null
```
---
## ✅ 示例:完整代码演示
```csharp
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
int[] arr = { 1, 2, 3, 4, 5 };
Console.WriteLine("原数组长度:" + arr.Length);
// 清空方式一:重新初始化
arr = new int[0];
Console.WriteLine("清空后数组长度:" + arr.Length);
// 方式二:Array.Clear
int[] arr2 = { 10, 20, 30 };
Array.Clear(arr2, 0, arr2.Length);
Console.WriteLine("Array.Clear 后第一个元素:" + arr2[0]);
// 方式三:List<T>
List<string> list = new List<string> { "a", "b", "c" };
list.Clear();
Console.WriteLine("List 清空后数量:" + list.Count);
}
}
```
---
## ✅ 总结
| 类型 | 清空方法 |
|------|----------|
| 一维数组 | `Array.Clear()` 或 `new T[0]` |
| 多维数组 | `Array.Clear()` |
| 交错数组 | 遍历子数组清空 或 `new T[0][]` |
| List<T> | `list.Clear()` 或 `new List<T>()` |
| 对象数组 | `Array.Clear()` |
| 字符串数组 | `Array.Clear()` 或 `new string[0]` |
---
##
阅读全文
相关推荐




















