[.net]C#中动态数组设计原理 |
flyby 发表于 2005/7/20 9:30:51 |
C#中所有数据类型都来自Object类,所以数组可以存储不同的类型,但是数组对象一旦创建,长度就不可改变,在实际应用中存在不方便之处。下面例程介绍了一种开发动态数组的方法。
/// <summary> /// ObjArray 的摘要说明。 /// 动态数组 /// </summary> /// <example> /// ObjectArray DynArr = new ObjectArray(); /// DynArr.addItem(11); /// DynArr.addItem("12"); /// DynArr.getItem(i); /// DynArr.clearAll(); /// </example> public class ObjArray { //对象数组 private object[] Items;
//对象数组的长度 public int Length { get { if(Items == null) return 0; else return Items.Length; } }
/// <summary> /// 构造函数 /// </summary> public ObjArray() { // // TODO: 在此处添加构造函数逻辑 // Items = null; }
/// <summary> /// 添加一元素 /// </summary> /// <param name="item">元素</param> public void addItem(object item) { if(Items == null) { Items = new object[1]; Items[0] = item; return; } else { object[] tmpList = new object[Length+1]; for(int i=0;i<Length;i++) { tmpList[i] = Items[i]; }
tmpList[Length] = item; Items = tmpList; return; } }
/// <summary> /// 删除一个元素 /// </summary> /// <param name="index">元素索引</param> public void deleteItem(int index) { if(Items == null) return; else { //如果索引没有越界 if(index >=0 && index < Length && Length>1) { object[] tmpList = new object[Length-1]; for(int i=0;i<index;i++) { tmpList[i] = Items[i]; } for(int i=index+1;i<Length;i++) { tmpList[i-1] = Items[i]; }
Items = tmpList; return; } else { if(index == 0 && Length<=1) { Items = null; return; } else return; } } }
/// <summary> /// 读取元素 /// </summary> /// <param name="index">元素索引</param> /// <returns>一个元素</returns> public object getItem(int index) { if(Items == null) return null; else { if(index >= 0 && index < Length) return Items[index]; else return null; } }
/// <summary> /// 清空数组 /// </summary> public void clearAll() { Items = null; } }
|
阅读全文(8691) | 回复(1) | 编辑 | 精华 |
| 回复:C#中动态数组设计原理 |
|
翻口皮(游客)发表评论于2006/5/20 3:22:58 | 学习,原来通过建立临时数组就可以得到一个动态的数组了。
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 | » 1 »
|
|
| « | December 2025 | » | | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | |
|
| 公告 |
此Blog中的文章仅代表本人当时观点,不对其正确性做任何担保。转载原创,请知会作者。QQ MSN | |
| Blog信息 |
|
blog名称:倾程记 日志总数:27 评论数量:72 留言数量:-3 访问次数:234684 建立时间:2005年7月8日
| |

|