在使用数组的过程中,有时候希望数组的长度和元素个数能随程序的运行不断改变,但改变一次就要重新开辟一个新的数组对象,这样将占用内存空间。为了解决这个问题,Microsoft.NET Framework 体统了一个ArrayList类,专门用于处理可按动态增减成员的数组。
ArrayList类被设计成一个动态数组,其容量会随着需要而适当的扩充。在ArrayList集合类中经常使用的方法如下。
Add()方法:向数组中添加一个元素
Remove()方法:删除数组中的某一元素
RemoveAt(int i)方法:删除数组中索引值为i的元素
Reverse()方法:反转数组的元素
Sort()方法:以从小到大的顺序排列数组的元素
Clone()方法:复制一个数组
ArrayList与System.Array的区别有以下几点:
①Array可以定义多维数组,ArrayList只能定义一维数组。
②Array可以定义自己的下限,ArrayList的下限始终是0
③Array的元素通常是特定类型的,Array的元素都是object类型的,所以需要进行装箱和拆箱操作,内存分配的代价高
④Array的元素数目是固定的,ArrayList的元素数目可以自动扩展
⑤ArrayList具有添加、删除、插入、移动、复制等方法
下面的是个小例子
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ArrayListTest
{
class Program
{
static void Main(string[] args)
{
ArrayList al = new ArrayList();
//单个添加
al.Add(100);
//集体添加方发一
foreach (int number in new int[6]{6, 3, 4, 1, 0 ,9})
{
al.Add(number);
}
//集体添加方法二
int[] number2 = new int[2] {15, 21};
al.AddRange(number2);
//移除值为3的数
al.Remove(3);
//移除第3个数
al.RemoveAt(3);
ArrayList al2 = new ArrayList(al.GetRange(1, 3));
Console.WriteLine("遍历方法一");
foreach (int i in al)
{
//遍历方法一
Console.WriteLine(i);
}
Console.WriteLine("遍历方法二");
for (int i = 0; i <al2.Count; i++)
{
//一定要强制转换
int number = (int)al2[i];
Console.WriteLine(number);
}
Console.ReadLine();
}
}
}
运行结果如下:
由于移除了位置在3的数和数为3的数字,所以就没有了1和3,结果如上
- 大小: 4.7 KB
分享到:
相关推荐
自己写的C#动态数组类库,类似于Arraylist类,比较简洁,主要功能都有,适合学习交流,完成作业。
在C#编程语言中,动态声明与使用对象数组是一种常见的操作,特别是在处理不确定数量的数据时。本实例将探讨如何在C#中实现这一功能,并关注数组的声明、使用、数据保护以及内存管理。 首先,我们要了解C#中的数组。...
### C#中的动态数组——ArrayList 在C#中,`ArrayList` 类提供了一种非常灵活的方式来存储和操作数据集合。与传统的固定大小数组不同,`ArrayList` 是一个动态数组,这意味着它可以在运行时动态地调整其大小。这...
在C#编程语言中,动态数组是一种非常实用的数据结构,它允许程序员在程序运行时根据需要改变数组的大小。在C#中,实现动态数组主要有三种方法,这些方法都适用于处理那些在编译时无法确定确切长度的数据集合。 1. *...
### C#验证数组元素是否重复的知识点 #### 1. 数组的定义与初始化 在C#中,数组可以通过以下方式定义和初始化: ```csharp string[] numbers = { "1", "2", "3", "4" }; ``` 或通过字符串分割来创建: ```csharp ...
5. 动态数组:C#的`List<T>`类提供了动态扩展的数组功能,可以方便地添加、删除元素,无需预知数组大小。 6. 数组复制与合并:`Array.Copy()`方法用于复制数组,`Array.Join()`则用于合并两个数组。 7. 排列组合:...
本篇文章将深入探讨如何在C#中读取包含数组的JSON文件。 首先,我们需要了解JSON的基本结构。一个JSON文件通常包含键值对,可以表示对象或者数组。数组在JSON中用方括号`[]`表示,对象用大括号`{}`表示。例如,一个...
### C#中结构数组的深度解析 #### 一、数组概览 在C#中,数组作为基础数据结构,提供了一种存储同类型元素的连续内存区域的方式。数组的索引从0开始,这一特性与许多其他编程语言相似。值得注意的是,C#中的数组...
在C#编程中,结构体(Struct)与字节数组(Byte Array)之间的转换是一项常见的操作,特别是在处理网络通信、序列化或低级数据处理时。本示例提供了便捷的方法来实现这种转换,帮助开发者解决相关的技术难题。 首先...
1. 定义动态的控件数组:在C#中,可以定义动态的控件数组,然后将已设计好的控件附给动态的数组。例如: ```csharp private void button1_Click(object sender, System.EventArgs e) { TextBox[] myTextBox = new ...
C#字节数组转16进制字符串 C#字节数组转16进制字符串 QQ:292258449
在C#编程中,处理字节数组与各种数值类型之间的转换是非常常见的操作。这通常涉及到网络通信、数据存储或序列化等情况。标题和描述提到的“C# Byte数组转Int32 Short Float(浮点数)”是指将字节数组中的数据转换为...
### C# 中维数组转换为 DataTable 的三种方法 在 C# 开发中,经常会遇到需要将数据从一种格式转换到另一种格式的需求,特别是在处理 Excel 数据时。本文将介绍如何使用 C# 将多维数组转换成 `DataTable`,这对于...
在C#编程中,动态二维数组是一种非常重要的数据结构,特别是在处理不定数量的数据或需要灵活扩展数据表的情况下。本文将深入探讨动态二维数组的概念、创建方法、操作技巧以及其在实际编程中的应用。 动态二维数组,...
C#数组的特点之一是它的索引从零开始,这意味着第一个元素的索引是0,最后一个元素的索引是数组长度减1。例如,一个包含10个元素的数组,其索引范围是0到9。在C#中,数组的声明与许多其他语言有所不同,数组类型需要...
在C#编程中,"C#窗体数组运算"是一个涉及图形用户界面(GUI)开发和数值计算的领域。窗体应用程序通常使用Windows Forms库来创建,而数组运算则涉及到多维数组处理和数学计算。在这个场景下,我们讨论的是如何在C#...
根据不同的需求,C#提供了多种类型的数组,包括一维数组、交错数组(也称作锯齿数组或Jagged Arrays)以及多维数组。本文将深入探讨这三种数组在C#中的性能差异,帮助开发者在实际应用中做出更加合理的选择。 ### ...
本篇文章将深入探讨如何使用C#来实现字节数组的模式匹配算法。 首先,我们要理解什么是模式匹配。模式匹配是指在一段文本(在本例中是字节数组)中查找一个特定的子序列(模式)。这种子序列可能是另一个字节数组或...
在C#编程语言中,数组和序列化是两个非常重要的概念。数组是数据结构的基础,序列化则是数据传输和持久化的关键技术。接下来,我们将深入探讨这两个主题。 **数组** 数组是C#中用于存储固定数量同类型元素的集合。...
在.NET框架中,C#与非托管代码如C++之间的交互是通过DLL(动态链接库)来实现的。本示例“dll向C#传递数组.rar”提供了如何在C#中调用C++编写的DLL,并传递数组作为参数的具体方法。这种跨语言互操作性依赖于CLI...