首页 > 代码库 > 10-21C#基础--集合

10-21C#基础--集合

二、集合  //定义一个集合,集合是一个类,

1、 定义:

ArrayList al = new ArrayList();

2、添加数据:al.add();//添加数值,可以添加无数个元素,集合中没有规定
 int i=al.Add(3);
 int k=al.Add(5);
 int j=al.Add(7);

3、插入数据:

al.insert(1,9);//集合可以插入数值,意义为在索引1这个位置,插入9这个数;原有位置的数据依次索引向后靠一位;

4、移除数据:

1)Remove

 al.Remove(5);//括号内输入的是数值,当插入的数把后面的数值挤到后面之后,在移除时,只移除第一次出现的数值即使后面有相等的数值。

2)RemoveAt

 al.RemoveAt(0);//输入的必须是索引,移除某个指定索引出的数值,只移除第一次出现的数值即使后面有相等的数值。

5、读取数据:

//如何读取数值;
 al[0];  //集合名+[]+索引;

6、集合中的元素的个数统计

 int cc = al.Count;//输出的是集合元素的个数;

7、 冒泡排序

al.Sort();//对集合中的元素进行排序,从小到大排序,无返回值;使用指定的比较器(即>、<)对元素进行排序;

8、索引显示

1).IndexOf();

int sy = al.IndexOf(12.0);

//如果索引显示-1,就是没有找到这个元素;只返回第一个匹配项的索引。因为数据类型不一样,比较的时候一定要注意数据类型是否相符,否则比较不出来。

2).LastIndexOf();//返回最后一个索引的匹配项;

int sy2 = al.LastIndexOf(12.0);

9、清空数据.Clear();

al.Clear();//清空集合中的数据元素,清空之后还可以再重新添加新元素;

10、判断是否包含 .Contains();

 bool b=xal.Contains(12.0);//返回布尔值,判断集合中是否包含输入的值;

11、复制集合.Clone();

ArrayList xal = new ArrayList();
xal = (ArrayList)al.Clone();//复制集合中的元素,装入新的集合中;

12、 注意:

al.Add(double.Parse(Console.ReadLine()));

直接赋值即可.如果是数字,将来要比较大小,需要在添加的时候转换成数值类型,再添加到集合里面,否则,会当做字符串的编码区分大小,会出错;因为集合里面包含很多类型的值;

集合程序的编写(以输入班级人数、成绩计算平均分为例)

Console.Write("请输入人数:");          

int n = int.Parse(Console.ReadLine());            

ArrayList al = new ArrayList();            

int i = 0;            

for (i = 0; i < n; i++)            

{                

Console.Write(i + " :");                

Console.Write("请输入分数:");                

al.Add(double.Parse(Console.ReadLine()));

 }            

double sum = 0;            

for (int j = 0; j < n; j++)            

{                

sum = sum + double.Parse(al[j].ToString());            

}            

double avg = sum / n;                 

Console.WriteLine("平均分" + avg);

for (int d = 0; d < n; d++)            

{                

Console.WriteLine(al[d]);            

}                       

Console.ReadLine();

 // al.Sort();//对集合中的元素进行排序,从小到大排序,无返回值;            

//al.Reverse();//这个是将顺序翻转;要想从大到小排列,执行reverse。

 // int sy = al.IndexOf(12.0);//如果索引显示-1,就是没有找到这个元素;只返回第一个匹配项的索引。因为数据类型不一样,比较的时候一定要注意数据类型是否相符,否则比较不出来。           

  //int sy2 = al.LastIndexOf(12.0);            

//al.Clear();//清空集合中的数据元素,清空之后还可以再重新添加新元素;            

//al.Clone();            

//ArrayList xal = new ArrayList();            

//xal = (ArrayList)al.Clone();//复制集合中的元素,装入新的集合中;            

//bool b=xal.Contains(12.0);//返回布尔值,判断集合中是否包含输入的值;            

//Console.WriteLine("第一个索引:" + sy + "最后一个索引" + sy2);

 

10-21C#基础--集合