日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

用C#实现自定义列表_艾孜尔江撰

發布時間:2024/1/8 C# 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用C#实现自定义列表_艾孜尔江撰 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace CustomizedList {class MyList<T> where T:IComparable{private T[] array;private int count=0;//表示當前添加的元素的個數public MyList(int size){if (size >= 0){array = new T[size];}}public MyList(){array = new T[0];}public int Capacity{get { return array.Length; }}public int Count{get { return count; }}public void Add(T item ){if (Count == Capacity) //判斷元素個數跟列表容量大小是否一樣大,如果一樣大,說明數組容量不用,需要創建新的數組{if (Capacity == 0){array = new T[4];//當數組長度為0的時候,創建一個長度為4的數組}else{var newArray = new T[Capacity*2];//當長度不為0的時候,我們創建一個長度為原來2倍的數組Array.Copy(array,newArray,Count);//把舊數組中的元素復制到新的數組中 , 復制前count個 array-->newArrayarray = newArray;}}array[Count] = item;count++;//元素個數自增}public T GetItem(int index){if (index >= 0 && index <= count - 1){return array[index];}else{//Console.WriteLine("索引超出了范圍");throw new Exception("索引超出了范圍");}}public T this[int index]{get//當我們通過索引器取值的時候,會調用get塊{ return GetItem(index); }set//當我們通過索引器設置值的時候,會調用set塊{if (index >= 0 && index <= count - 1){array[index] = value;} else {//Console.WriteLine("索引超出了范圍");throw new Exception("索引超出了范圍");}}}public void Insert(int index, T item){if (index >= 0 && index <= count - 1){if (Count == Capacity)//容量不夠 進行擴容{var newArray = new T[Capacity*2]; Array.Copy(array,newArray,count);array = newArray;//newArray被GC機制回收}for (int i = count-1; i >=index; i--){array[i + 1] = array[i];//把i位置的值放在后面,就是向后移動一個單位}array[index] = item;count++;}else{throw new Exception("所以超出范圍");}}public void RemoveAt(int index){if (index >= 0 && index <= count - 1){for (int i = index + 1; i < count; i++){array[i - 1] = array[i];}count--;}else{throw new Exception("索引超出范圍");}}public int IndexOf(T item){for (int i = 0; i < count; i++){if (array[i].Equals(item)){return i;}}return -1;}public int LastIndexOf(T item){for (int i = Count-1; i >=0; i--) {if (array[i].Equals(item)) {return i;}}return -1;}public void Sort(){for (int j = 0; j < Count-1; j++){for (int i = 0; i < Count - 1 - j; i++) {if (array[i].CompareTo(array[i + 1]) > 0) {T temp = array[i];array[i] = array[i + 1];array[i + 1] = temp;}}}}}//測試class Program {static void Main(string[] args) {MyList<int> mylist = new MyList<int>();mylist.Add(234);mylist.Add(14);mylist.Add(24);mylist.Add(24);mylist.Add(90);mylist.Add(274);//mylist[index]mylist.Insert(1,2);//mylist.RemoveAt(-1);mylist[0] = 100;//通過索引器 設置值for (int i = 0; i < mylist.Count; i++){//Console.WriteLine(mylist.GetItem(i));Console.WriteLine(mylist[i]);//通過索引器 取值}Console.WriteLine(mylist.IndexOf(24));Console.WriteLine(mylist.LastIndexOf(24));mylist.Sort();Console.WriteLine();for (int i = 0; i < mylist.Count; i++) {//Console.WriteLine(mylist.GetItem(i));Console.WriteLine(mylist[i]);//通過索引器 取值}Console.ReadKey();}} }

總結

以上是生活随笔為你收集整理的用C#实现自定义列表_艾孜尔江撰的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。