利用C#创建一个我们自己的列表
来源:互联网 发布:网络音响怎么布线 编辑:程序博客网 时间:2024/06/03 13:44
通过C#创建一个列表,实现索引器,构造器,添加,删除,排序等功能。
class MyList<T> where T:IComparable { private T[] array; private int count; 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 (array.Length == 0)//如果初始容量仍是0 { array = new T[4]; } else { T[] tempArray = new T[2 * count]; Array.Copy(array, tempArray, count); array = tempArray; } } array[count] = item; count++; } public T GetItem(int index)//获取元素 { if (index >= 0 && index <= count - 1) { return array[index]; } else { throw new Exception("索引超出范围!");//抛出异常或者返回默认值 //return default(T); } } public T this[int index]//添加索引器 { get { return GetItem(index); } set { if (index >= 0 && index <= count - 1) { array[index] = value; } else { throw new Exception("索引超出范围!"); } } } #region public void Insert(int index, T item)//指定位置添加元素 { if (index >= 0 && index <= count - 1) { if (count == Capacity)//如果装满了 { T[] tempArray = new T[2 * count]; Array.Copy(array, tempArray, count); array = tempArray; } for (int i = count; i > index; i--) { array[i] = array[i - 1]; } array[index] = item; count++; } else { throw new Exception("索引超出范围!"); } } #endregion public void RemoveAt(int index)//移除指定位置元素 { if (index > 0 && index <= count - 1) { for (int i = index; i < count-1; i++) { array[index] = array[index + 1]; } count--; } else { throw new Exception("索引超出范围!"); } } public void Sort()//通过冒泡排序进行排序 { bool isSwap = false; for (int i = 0; i < count-1; i++) { for (int j = 0; j <count-i-1 ; j++) { if (array[j].CompareTo(array[j+1])>0) { T temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; isSwap = true; } } if (!isSwap) { break; } } } }
阅读全文
0 0
- 利用C#创建一个我们自己的列表
- 使用泛型来创建我们自己的列表
- (第二季) 233-创建我们自己的列表MyList
- 利用Expandable创建一个可以扩展的列表
- 利用jQuery.expr创建一个自己的伪类选择器
- 利用C#创建一个简单的Windows服务
- 利用tolua++编译我们创建的pkg
- 利用C#反射为DO映射对象数组生成一个用于列表显示的通用解决方案
- 如何利用Microsoft Web Browser控件在VC中创建一个属于自己的浏览器
- 如何利用Microsoft Web Browser控件在VC中创建一个属于自己的浏览器
- 自己实现一个简单的散列表
- 利用WebBrowser控件创建自己的浏览器
- 利用WebBrowser控件创建自己的浏览器
- 利用WebBrowser控件创建自己的浏览器
- 利用WebBrowser控件创建自己的浏览器
- 利用AbstractTableModel创建自己的table
- 利用WebBrowser控件创建自己的浏览器
- 利用OpenCV创建自己的Rect类
- bootstrap进度条
- react-native 实现条码扫描(ios&android)
- 04--MySQL自学教程:数据库MySQL--【数据库DB】和【数据库管理系统DBMS】简介
- 微信公众号网页能够访问,但注册信息发送不到配置好的接口
- xamarin学习笔记A02(安卓项目组成)
- 利用C#创建一个我们自己的列表
- 【C#】方法(函数)
- 指针的地址调用-----读取学生最高分
- 关于堆得相关操作
- Windows10重装edge浏览器
- 归并排序算法原理分析与代码实现
- JZ2440--linux下给u-boot打补丁并编译
- bzoj 2843 极地旅行社
- SSM框架02--mybatis(1)