1. 程式人生 > >C#(三)-【集合】

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()

總結

在這裡插入圖片描述