C#(三)-【集合】
阿新 • • 發佈:2018-12-10
概述
接下來總結以下四種最常用的集合,聽小楊老師說這塊非常重要,所以聽的還是挺認真的。
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()