2023-11-02
自我提升
00

myList.cs

c#
using System; using System.Collections.Generic; using System.Text; namespace MyList列表 { class MyList < T > { private T[] data = new T[0]; //data null private int count = 0; // 元素个数 数据个数 public int Capacity //获取容量大小 { get { return data.Length; } } public int Count //获取元素个数 { get { return count; } } public void Add(T item) //添加元素 { if (data.Length == 0) { data = new T[4]; } if (data.Length == count) //添加元素之前 ,先判断数组是否已经满 { T[] temp = new T[count * 2]; for (int i = 0; i < data.Length; i++) { temp[i] = data[i]; } data = temp; } data[count] = item; count++; } public T this[int index] //访问元素 { get { if (index < 0 || index > count - 1) { //抛出异常 throw new ArgumentOutOfRangeException("索引参数超出范围了"); } return data[index]; } set { data[index] = value; } } public void Insert(int index, T item) //插入元素 { if (index < 0 || index > count - 1) //判断是否存在索引 { throw new ArgumentOutOfRangeException("索引参数超出范围了"); } for (int i = count - 1; i > index - 1; i--) { // count-1 index data[i + 1] = data[i]; } data[index] = item; count++; } public void RemoveAt(int index) //移除指定位置元素 { if (index < 0 || index > count - 1) { throw new ArgumentOutOfRangeException("索引参数超出范围了"); } for (int i = index + 1; i < count; i++) { // index+1 count-1 data[i - 1] = data[i]; } count--; } public int IndexOf(T item) //从前往后获取元素所在的索引位置 { int index = -1; for (int i = 0; i < count; i++) { // ToString Equals if (item.Equals(data[i])) { index = i; break; } } return index; //从前往后 } public int LastIndexOf(T item) //从后往前获取元素所在的索引位置 { int index = -1; for (int i = count - 1; i >= 0; i--) { // ToString Equals if (item.Equals(data[i])) { index = i; break; } } return index; //从后往前 } public void Sort() //排序 { Array.Sort(data, 0, count); //0, count 指范围 } } }

Program.cs

c#
using System; using System.Collections.Generic; namespace MyList列表 { class Program { static void Main(string[] args) { // 1.Capacity 获取容量⼤⼩ MyList < int > list = new MyList < int > (); Console.WriteLine(list.Capacity); // 2.Add()⽅法添加元素 list.Add(1); list.Add(2); list.Add(3); list.Add(4); list.Add(5); list.Add(4); // 5.Count属性访问元素个数 Console.WriteLine(list.Count); //遍历集合 for (int i = 0; i < list.Count; i++) { Console.Write(list[i] + " "); } // 3.Insert()⽅法插⼊元素 list.Insert(2, 100); for (int i = 0; i < list.Count; i++) //遍历集合 { Console.Write(list[i] + " "); } Console.WriteLine(); // 4.[index]访问元素(索引器) int temp1 = list[10]; int temp2 = list[-1]; List < int > l = new List < int > (); int temp = l[-1]; // 6.RemoveAt()⽅法移除指定位置的元素 list.RemoveAt(3); for (int i = 0; i < list.Count; i++) //遍历集合 { Console.Write(list[i] + " "); } Console.WriteLine(); // 7.IndexOf()⽅法取得⼀个元素所在列表中的索引位置 Console.WriteLine(list.IndexOf(4)); //从前往后搜索 Console.WriteLine(list.LastIndexOf(4)); //从后往前搜索 // 8.Sort()对列表中是元素进⾏从⼩到⼤排序 list.Sort(); for (int i = 0; i < list.Count; i++) //遍历集合 { Console.Write(list[i] + " "); } Console.WriteLine(); } } }

本文作者:千纸鹤

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

正在翻译,请稍后...