C#(三)-【集合】

概述

接下来总结以下四种最常用的集合,听小杨老师说这块非常重要,所以听的还是挺认真的。

ArrayList

ArrayList类似于数组,有人也称它为数组列表。ArrayList可以动态维护,而数组的容量是固定的。
给集合添加数据,可以用Add()这个方法,添加的内容也可以无限添加。刚开始需要导入以下命名空间: using System.Collections;

1.显示10以内的奇数:

ArrayList al = new ArrayList();
            for(int i= 1;i<20;i+=2)
            {
                al.Add(i);
            }

            for(int i=0;i<al.Count;i++)
            {
                Console.WriteLine(al[i]);
            }
            Console.ReadKey();

2.往集合中添加数据有三种方式:
(1)通过构造函数可以添加一个数组
(2)通过Add()方法可以添加数组,--------但是算成一个元素,
(3)通过AddRange()也可以添加数组,

3.方法:

方法:
//arrayList.Clear();//清空了
            //arrayList.Contains(11);//判断这个集合中是否包含这个元素
            //int num = arrayList.Count;//集合中元素的个数
            //int[] nums = { 1, 2, 3 };
            //arrayList.InsertRange(4, nums);//往某个索引位置插入一个数组

            //arrayList.Remove(1);
            //arrayList.RemoveAt(1);//移除索引对应的值

            //arrayList.RemoveRange(3, 100);//从指定索引处开始移除,移除多少个,如果超出索引报异常
            //ArrayList arrayList = new ArrayList();
            //for(int i=0;i<100;i++)
            //{
            //    arrayList.Add(i);
            //}
            //arrayList.Reverse();//反转
            /*arrayList.Sort();*///排序
            //for (int i = 0; i < arrayList.Count; i++)
            //{
            //    Console.WriteLine(arrayList[i]);
            //}
            //Console.ReadKey();

4.集合可以看成数组。
数组没有的,集合有。
可以将集合看作“长度可变的,具有很多方法的数组”。

5.求集合元素总和求平均值:

ArrayList arrayList = new ArrayList();
            int sum = 0;
            for (int i = 1; i <= 100;i++)
            {
                arrayList.Add(i);
            }
            for(int i=0;i<arrayList.Count;i++)
            {
                if (arrayList[i] is int)
                {
                    sum += (int)arrayList[i];
                }

            }
            Console.WriteLine(sum);
            double avg = sum * 1.0 / arrayList.Count;

            Console.WriteLine(avg);
            Console.ReadKey();

6.随机的往集合中添加数据,添加10个,不能重复,再求和,求平均值:

    ArrayList arr = new ArrayList();
            Random r = new Random();

            while (arr.Count!=10)
            {
                int num = r.Next(1, 100);
                if (!arr.Contains(num))
                {
                    arr.Add(num);
                }
            }
            int sum = 0;
            for (int i = 0; i < arr.Count; i++)
            {
                if (arr[i] is int)   //能否转化为int类型
                {
                    sum += (int)arr[i];
                }
                Console.WriteLine(arr[i]);
            }
            Console.WriteLine(sum);
            Console.WriteLine(sum / arr.Count);
            Console.ReadKey();

哈希表

C# /提供了一种称为HashTable的数据结构,通常称为哈希表。

 Hashtable ht = new Hashtable();
            //哈希表以键值对的形式存值  key ----键  value---值
            //哈希表是无序的
            ht.Add("老苏", "001");

            ht.Add("小马","002");

            ht.Add("003", "老牛");
        

            ht.Add("小赵", "老马");//键值不能重复

            foreach(object str in ht.Keys)//str代表的是单个的key
            {
                Console.WriteLine("key{0},-----value{1}",str,ht[str]);
            }
            Console.WriteLine("添加成功了");
            Console.ReadKey();

把keys换成values输出的是值:

Hashtable ht = new Hashtable();
            //哈希表以键值对的形式存值  key ----键  value---值
            //哈希表是无序的
            ht.Add("老苏", "001");

            ht.Add("小马","002");

            ht.Add("003", "老牛");
           

            ht.Add("小赵", "老马");//键值不能重复
            ht.Remove(1003);
            foreach(object str in ht.Values)//str代表的是单个的key,,在不知道的情况下用var,然后进行调试
            {
          
                Console.WriteLine(str);
            }
            Console.WriteLine("添加成功了");
            Console.ReadKey();

泛型集合: List

通过泛型集合可以最大限度的重用代码、保护类型的安全及提高性能.
随机的往这个List集合中添加是个数据,求和,求最大值,求最小值,求平均值:

  List<int> list = new List<int>();
            Random r = new Random();

            int num = 0;
            while (list.Count!=10)
            {
                num =r.Next(1, 100);
                list.Add(num);
            }
       
            Console.WriteLine("最大值:{0}",list.Max());
            Console.WriteLine("最小值:{0}", list.Min());
            Console.WriteLine("和为:{0}", list.Sum());
            Console.WriteLine("平均值:{0}", list.Average());
            
            Console.ReadKey();

泛型集合:Dictionary

它具有泛型的全部特性,编译时检查类型约束,获取元素时无需类型转换,并且它存储数据的方式和HashTable类似。

 Dictionary<string, string> dic = new Dictionary<string, string>();

            dic.Add("老苏", "凤姐");
            dic.Add("老牛", "芙蓉姐姐");
            dic.Add("老马", "春哥");
            dic.Add("老虎", "曾哥");
            dic.Add("老蒋", "小月月");


            foreach (string item in dic.Keys)
            {
                Console.WriteLine("key---:{0},value---:{1}", item, dic[item]);

            }
            Console.ReadKey()

总结

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41306240/article/details/84145722