集合

1、集合的引用

using System.Collections;//添加类

2、定义集合(ArrayList 或 Array)

ArrayList arr = new ArrayList();

3、添加数据(可以放多种不同数据类型,但最好只放一种)

(一)单个数据

方法1:add增加

arr.Add(3);
arr.Add(5);
arr.Add("hello");

 

输出结果:

Console.WriteLine("add[0]:"+arr[0]); //通过添加元素的先后顺序生成从0开始的索引,通过索引读取数据,输出结果为"3"
Console.WriteLine("add[1]:" + arr[1]);//5
Console.WriteLine("add[2]:"+arr[2]);//hello

方法2:insert插入,使从索引所示的数据开始的数据向后移动一位

arr.Insert(1, 17);//Insert(索引,插入的数据)

输出结果:

Console.WriteLine("insert[0]"+arr[0]);//3
Console.WriteLine("insert[1]" + arr[1]);//17
Console.WriteLine("insert[2]" + arr[2]);//5
Console.WriteLine("insert[3]" + arr[3]);//hello

(二)数组:

1、追加一组数据addrange

int[] shuzu = new int[3] { 6, 7, 8 };
arr.AddRange(shuzu);

遍历:

foreach (object o in arr)//因为集合中可能会有多种数据,所以要用object(基类)进行遍历,所有类型都可以转化为这个类型
{
Console.WriteLine("遍历1:" + o);
}

2、从指定索引开始插入一组数据InsertRange

arr.InsertRange(2, shuzu);
//遍历
foreach (object o in arr)
{
Console.WriteLine("遍历2:" + o);
}

4、移除数据:(只移除第一个匹配项)

(一)移除指定数据(值):Remove

arr.Remove(17);//移除值为17的数据
foreach (object o in arr)
{
Console.WriteLine("Remove后:" + o);
}

(二)移除指定索引位置的元素:RemoveAt

arr.RemoveAt(2);
Console.WriteLine("Remove后索引为[3]的数据:"+arr[3]);

5、排序:

(1)sort:自动按升序排列

ArrayList arr1 = new ArrayList();
for (int i = 0; i < 5; i++)
{
arr1.Add(int.Parse(Console.ReadLine()));
}
arr1.Sort();
foreach (object o in arr1)
{
Console.WriteLine("升序sort:"+o);
}

(2)Reverse:翻转集合的排序(使其变为降序)

arr1.Reverse();
foreach (object o in arr1)
{
Console.WriteLine("翻转reverse后降序:"+o);
}

6、集合的属性:

count:返回集合里面有多少元素

Console.WriteLine("元素个数为:" + arr1.Count);

7、返回索引IndexOf

Console.WriteLine("hello所在的索引为:"+arr.IndexOf("hello"));//只返回第一个匹配项所在的索引
Console.WriteLine("hello所在的最后一个匹配项所在的索引为:" + arr.LastIndexOf("hello"));//返回最后一个匹配项所在的索引

**插入的数组索引也是按单个数据排列的,如:插入一组三个数的数组,会建立三个索引。

8、contains:判断是否有某个元素,返回bool值

arr.Contains(1);

9、清空集合

arr.Clear();