### C#中的动态数组——ArrayList 在C#中,`ArrayList` 类提供了一种非常灵活的方式来存储和操作数据集合。与传统的固定大小数组不同,`ArrayList` 是一个动态数组,这意味着它可以在运行时动态地调整其大小。这使得 `ArrayList` 成为处理不确定数量的数据项的理想选择。 #### 基本概念 `ArrayList` 是一个对象数组,可以存储任何类型的对象,并且提供了许多用于添加、删除、插入和检索元素的方法。下面我们将详细介绍 `ArrayList` 的一些关键特性和用法。 #### 创建 ArrayList ```csharp ArrayList AL = new ArrayList(); ``` 上述代码创建了一个新的 `ArrayList` 对象 `AL`。 #### 添加元素 可以通过 `Add` 方法向 `ArrayList` 中添加元素: ```csharp AL.Add("Hello"); AL.Add("World"); ``` 以上代码将字符串 "Hello" 和 "World" 分别添加到 `ArrayList` 中。 #### 遍历 ArrayList 使用 `foreach` 循环可以轻松遍历 `ArrayList` 中的所有元素: ```csharp foreach (Object obj in AL) { Console.Write(obj); } ``` 此代码段将依次打印出 `ArrayList` 中的每个元素。 #### 计数与容量 `ArrayList` 提供了两个重要的属性:`Count` 和 `Capacity`。 - `Count` 表示当前 `ArrayList` 中元素的数量。 - `Capacity` 表示 `ArrayList` 能够容纳的最大元素数量。 例如: ```csharp Console.WriteLine("Count: " + AL.Count); Console.WriteLine("Capacity: " + AL.Capacity); ``` 这里分别输出了 `ArrayList` 当前的元素个数和最大容量。 #### 插入元素 除了通过 `Add` 方法在列表末尾添加元素外,还可以使用 `Insert` 方法在指定位置插入元素: ```csharp AL.Insert(1, "c#"); ``` 该行代码会在索引为1的位置插入字符串 "c#"。 #### 访问元素 可以通过索引来访问 `ArrayList` 中的特定元素: ```csharp Console.WriteLine("Element at index 3: " + AL[3]); ``` 此代码会输出索引为3处的元素值。 #### 查找元素 使用 `Contains` 方法可以检查 `ArrayList` 是否包含某个元素: ```csharp Console.WriteLine("Contains '?' : " + AL.Contains("?")); ``` 如果 `ArrayList` 中存在字符 "?",则返回 `true`;否则返回 `false`。 #### 删除元素 `ArrayList` 提供了几种不同的方式来移除元素: 1. **Remove**:根据元素内容移除第一个匹配的元素。 2. **RemoveAt**:根据元素的索引移除指定位置的元素。 示例代码: ```csharp AL.Remove(""); // 移除空字符串 AL.Remove("?"); // 移除字符 "?" AL.RemoveAt(3); // 移除索引为3的元素 ``` #### 调整容量 有时候可能需要减小 `ArrayList` 的实际容量以节省内存空间。`TrimToSize` 方法可以帮助实现这一点: ```csharp AL.TrimToSize(); ``` 调用后,`ArrayList` 的 `Capacity` 将被调整为当前的 `Count` 大小。 #### 清空 ArrayList 如果需要清空整个 `ArrayList`,可以使用 `Clear` 方法: ```csharp AL.Clear(); ``` 清空后,`ArrayList` 的 `Count` 属性将变为0。 #### 总结 通过上述介绍可以看出,`ArrayList` 在C#中是一个非常实用且强大的类,它不仅提供了灵活的动态调整大小的功能,还支持多种方便的操作方法。无论是进行数据处理还是构建应用程序,掌握 `ArrayList` 的使用都是非常有帮助的。希望本文能为你理解和使用C#中的 `ArrayList` 提供一定的参考价值。
ArrayList AL = new ArrayList();
AL.Add("Hello"); AL.Add(" World");
Console.WriteLine("给数组添加元素:");
foreach (Object obj in AL)
{ Console.Write(obj);
}
Console.WriteLine();
Console.WriteLine("个数:" + AL.Count);
Console.WriteLine("容量: " + AL.Capacity);
AL.Insert(1, " c#");
//C#动态数组的详解实例
Console.Write("在索引值为1的地方插入 ");
foreach (Object obj in AL)
{Console.Write(obj); }
Console.WriteLine();
Console.WriteLine("个数:" + AL.Count);
Console.WriteLine("容量: "+AL.Capacity);
AL.Add("。");
//给集合添加“。”,查看集合的容量
Console.WriteLine("容量。: " + AL.Capacity);
AL.Add("---");
//给集合添加“---”,查看当集合的容量不够时,倍数变化
Console.WriteLine("容量---: " + AL.Capacity);
Console.WriteLine("3号索引的:"+AL[3]);
//用索引方式获取集合元素值 //C#动态数组的详解实例
Console.WriteLine("数组中是否包含?:"+AL.Contains ("?"));
//利用contains方法,查找集合中是否包含“?” Console.WriteLine("经过之前操作后的数组元素:");
foreach (Object obj in AL)
{ Console.Write(obj); }
- 粉丝: 49
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助