集合
理解为箱子,没有固定长度,可以放任意类型的数据或是变量;
集合也有索引;

ArrayList:★
定义:
ArrayList arr = new ArrayList();
添加元素:
arr.Add(a);
arr.Add(b);

取值:
arr[索引];
注意的是,取值时是object类型,需要进行类型转换;

注意:一个集合虽然可以放任意类型,但是我们使用时一般一个集合就放一种类型;

特殊功能:
arr.Add(); 添加元素
arr.Insert(索引,值); 插队,将值插队进到索引的位置
arr.Remove(值); //根据值来删除集合中的元素
arr.RemoveAt(索引); //根据索引来删除集合中的元素
arr.Clear(); //清空集合
arr.Sort(); //从小到大排列集合中的所有元素
arr.Reverse();
arr.Contains(); //查看集合中是否包含某个元素
arr.count; //集合中元素的个数,返回一个int类型

特殊集合:

Queue 队列集合
定义:
Queue qq = new Queue();
添加元素:
Enqueue("值"/变量);
取值:
Dequeue(); //取第一个进去的值,并在集合中删除掉
Peek(); //取第一进去的值给你看看,不会在集合中删除

Stack 栈桥集合
定义:
Stack ss = new Stack();
添加元素:
ss.Push("值"/变量);
取值:
ss.Pop(); //先进去的后出来,取到的是最后一个进去的,并在集合中删除掉
ss.Peek(); //取最后一个进去的,拿出来给你看看,不会在集合中删除掉

Hashtable:哈希表集合
键值对, 一个建对应一个值;
定义:
Hashtable ha = new Hashtable();
添加元素:
Add(key,value); //key键,用户自定义索引,为object类型
//value值,当前这个索引所对应的内容
取值:
ha[key]; //根据用户自定义索引来取出相对应的内容

遍历:
foreach (string i in ha.Keys) //可以单独遍历键
{
  Console.WriteLine(i);
}

foreach (string i in ha.Values) //可以单独遍历值
{
  Console.WriteLine(i);
}

泛型集合:
List<类型> li = new List<类型>();

li.Add(同一类型的值或变量);

li[索引

练习

请输入学生个数:
请输入第1个学生的姓名:
请输入第1个学生的性别:
请输入第1个学生的年龄:
请输入第1个学生的成绩:
...
n
********************************
第1个学生的姓名:xxx,性别:xxx,年龄:xxx,成绩:xxx。
...
n

            ArrayList a = new ArrayList();
            ArrayList b = new ArrayList();
            ArrayList c = new ArrayList();
            ArrayList d = new ArrayList();

            decimal end = 0;
            Console.Write("请输入学生个数:");
            int count  = Convert.ToInt16(Console.ReadLine());

            for (int i = 0; i <count ; i++)
            {
                Console.Write("请输入第" + (i+1) + "个学生的姓名:");
                string x = Console.ReadLine();
                Console.Write("请输入第" + (i+1) + "个学生的性别:");
                string xb = Console.ReadLine();
                Console.Write("请输入第" + (i+1) + "个学生的年龄:");
                decimal n = Convert.ToDecimal(Console.ReadLine());
                Console.Write("请输入第" + (i+1) + "个学生的成绩:");
                decimal cj = Convert.ToDecimal(Console.ReadLine());

                a.Add(x);
                b.Add(xb);
                c.Add(n); 
                d.Add(cj);
                end += cj;
            }
            Console.WriteLine("********************************");
            for (int j = 0; j < count; j++)
            {
                Console.WriteLine("" + j+1 + "个学生的姓名是:"+a[j]+",性别是:"+b[j]+",年龄是:"+c[j]+",成绩是:"+d[j]+"");
            }
            Console.WriteLine("总成绩是:" + end + ",平均分是:" + end / count + "");

            Console.ReadLine();

运算结果

posted on 2016-05-29 20:20  斐雪  阅读(162)  评论(0编辑  收藏  举报