1、别名:动态数组、集合
2、声明之前需要引用命名空间:using System.Collections
声明时可指定长度,也可不指定: ArrayList myList = new ArrayList();
ArrayList myList = new ArrayList(100);
3、包含四种种添加方法,分别是:
Add(参数); ---- 每次只能添加一个元素,可以是任意类型。
AddRange(参数) ----添加一个范围内的对象,比如说数组。
以上两种方法,都只能添加到ArrayList的末尾,如果想在指定位置插入某个值可以用
Insert(参数1,参数2); ---参数1代表索引号,参数2代表要插入的值 用于插入单个值
InsertRange(参数1,参数2); ---参数1代表索引号,参数2代表要插入的值 用于插入一个范围类的对象,比如数组
4、删除方法:
Remove(值)、RemoveAt(索引号)
RemoveRange(起始索引号,删除的个数)
Clear() -----清空所有元素
5、查找方法:(查找不到均返回-1)
IndexOf(值) 返回该值首次出现的索引号
LastIndexOf(值) 返回该值最后一次出现的索引号
BinarySearch(值) 返回该值首次出现的索引号 , 要注意的是:如果ArrayList中有不同类型的元素时,用此方法会报错。
因为它会将值自动转换为二进制
6、在利用foreach遍历ArrayList时,如果存在多种类型的元素,可选用Object类声明,因为它是所有类的基类
foreach(Object obj in myList)
{
Console.WritLine(obj);
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace ArrayList演示
{
class Program
{
static void Main(string[] args)
{
ArrayList myList = new ArrayList();
myList.Add(10);
myList.Add('我');
myList.Add("集合");
myList.Add(50.5);
myList.Insert(0,"小明");
string[] str = {"张三","李四","王五","赵六"};
// AddRange() 可用于一次添加多个元素,可以直接添加数组!
myList.AddRange(str);
//myList.AddRange();
Console.WriteLine("删除前共有{0}个元素", myList.Count);
foreach (object obj in myList)
{
Console.Write(obj + "\t");
}
//RemoveRange(索引,删除的个数)、Remove(值)、RemoveAt(索引值)
myList.RemoveRange(4,3);
Console.WriteLine("\n删除后共有{0}个元素", myList.Count);
foreach (object obj in myList)
{
Console.Write(obj + "\t");
}
//Clear() 清空所有元素
myList.Clear();
Console.WriteLine("\n清空后共有{0}个元素", myList.Count);
foreach (object obj in myList)
{
Console.Write(obj + "\t");
}
Console.ReadKey();
}
}
}