首页 > 代码库 > 实例365(12)---------数组的基本操作(二)
实例365(12)---------数组的基本操作(二)
一:在数组中添加一个元素,截图
二:代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace AddElementInArray { public partial class Frm_Main : Form { public Frm_Main() { InitializeComponent(); } private int[] G_int_array = new int[8];//定义数组类型变量 /// <summary> /// 增加单个数组元素 /// </summary> /// <param name="ArrayBorn">要向其中添加元素的一维数组</param> /// <param name="Index">添加索引</param> /// <param name="Value">添加值</param> /// <returns></returns> static int[] AddArray(int[] ArrayBorn, int Index, int Value) { if (Index >= (ArrayBorn.Length))//判断添加索引是否大于数组的长度 Index = ArrayBorn.Length - 1;//将添加索引设置为数组的最大索引 int[] TemArray = new int[ArrayBorn.Length + 1];//声明一个新的数组 for (int i = 0; i < TemArray.Length; i++)//遍历新数组的元素 { if (Index >= 0)//判断添加索引是否大于等于0 { if (i < (Index + 1))//判断遍历到的索引是否小于添加索引加1 TemArray[i] = ArrayBorn[i];//交换元素值 else if (i == (Index + 1))//判断遍历到的索引是否等于添加索引加1 TemArray[i] = Value;//为遍历到的索引设置添加值 else TemArray[i] = ArrayBorn[i - 1];//交换元素值 } else { if (i == 0)//判断遍历到的索引是否为0 TemArray[i] = Value;//为遍历到的索引设置添加值 else TemArray[i] = ArrayBorn[i - 1];//交换元素值 } } return TemArray;//返回插入元素后的新数组 } private void btn_RArray_Click(object sender, EventArgs e) { txt_RArray.Clear();//清空文本框 //使用循环赋值 for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++) { G_int_array[i] = i; } //使用循环输出 for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++) { txt_RArray.Text += G_int_array[i] + " "; } } private void btn_Sure_Click(object sender, EventArgs e) { rtbox_NArray.Clear();//清空文本框 G_int_array = AddArray(G_int_array, 4, Convert.ToInt32(txt_Element.Text));//调用自定义方法向数组中插入单个元素 //使用循环输出 for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++) { rtbox_NArray.Text += G_int_array[i] + " "; } } } }
三:在数组中添加一个数组,截图
四:代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace AddArrayInArray { public partial class Frm_Main : Form { public Frm_Main() { InitializeComponent(); } private int[] G_int_array = new int[8];//定义数组类型变量 private int[] G_int_Narray = new int[4];//定义数组类型变量 /// <summary> /// 向一维数组中添加一个数组 /// </summary> /// <param name="ArrayBorn">源数组</param> /// <param name="ArrayAdd">要添加的数组</param> /// <param name="Index">添加索引</param> /// <returns>新得到的数组</returns> static int[] AddArray(int[] ArrayBorn, int[] ArrayAdd, int Index) { if (Index >= (ArrayBorn.Length))//判断添加索引是否大于数组的长度 Index = ArrayBorn.Length - 1;//将添加索引设置为数组的最大索引 int[] TemArray = new int[ArrayBorn.Length + ArrayAdd.Length];//声明一个新的数组 for (int i = 0; i < TemArray.Length; i++)//遍历新数组的元素 { if (Index >= 0)//判断添加索引是否大于等于0 { if (i < (Index + 1))//判断遍历到的索引是否小于添加索引加1 TemArray[i] = ArrayBorn[i];//交换元素值 else if (i == (Index + 1))//判断遍历到的索引是否等于添加索引加1 { for (int j = 0; j < ArrayAdd.Length; j++)//遍历要添加的数组 TemArray[i + j] = ArrayAdd[j];//为遍历到的索引设置添加值 i = i + ArrayAdd.Length - 1;//将遍历索引设置为要添加数组的索引最大值 } else TemArray[i] = ArrayBorn[i - ArrayAdd.Length];//交换元素值 } else { if (i == 0)//判断遍历到的索引是否为0 { for (int j = 0; j < ArrayAdd.Length; j++)//遍历要添加的数组 TemArray[i + j] = ArrayAdd[j];//为遍历到的索引设置添加值 i = i + ArrayAdd.Length - 1;//将遍历索引设置为要添加数组的索引最大值 } else TemArray[i] = ArrayBorn[i - ArrayAdd.Length];//交换元素值 } } return TemArray;//返回添加数组后的新数组 } private void btn_RArray_Click(object sender, EventArgs e) { txt_RArray.Clear();//清空文本框 //使用循环赋值 for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++) { G_int_array[i] = i; } //使用循环输出 for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++) { txt_RArray.Text += G_int_array[i] + " "; } } private void btn_NArray_Click(object sender, EventArgs e) { txt_NArray.Clear();//清空文本框 //使用循环赋值 for (int i = 0; i < G_int_Narray.GetUpperBound(0) + 1; i++) { G_int_Narray[i] = i; } //使用循环输出 for (int i = 0; i < G_int_Narray.GetUpperBound(0) + 1; i++) { txt_NArray.Text += G_int_Narray[i] + " "; } } private void btn_Sure_Click(object sender, EventArgs e) { rtbox_NArray.Clear();//清空文本框 G_int_array = AddArray(G_int_array, G_int_Narray,5);//调用自定义方法向数组中插入数组 //使用循环输出 for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++) { rtbox_NArray.Text += G_int_array[i] + " "; } } } }
五:不改变长度删除数组中的元素,截图
六:代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace DelArrayNoLength { public partial class Frm_Main : Form { public Frm_Main() { InitializeComponent(); } private int[] G_int_array = new int[8];//定义数组类型变量 /// <summary> /// 删除数组中的元素 /// </summary> /// <param name="ArrayBorn">要从中删除元素的数组</param> /// <param name="Index">删除索引</param> /// <param name="Len">删除的长度</param> static void DeleteArray(int[] ArrayBorn, int Index, int Len) { if (Len <= 0)//判断删除长度是否小于等于0 return;//返回 if (Index == 0 && Len >= ArrayBorn.Length)//判断删除长度是否超出了数组范围 Len = ArrayBorn.Length;//将删除长度设置为数组的长度 else if ((Index + Len) >= ArrayBorn.Length)//判断删除索引和长度的和是否超出了数组范围 Len = ArrayBorn.Length - Index - 1;//设置删除的长度 int i = 0;//定义一个int变量,用来标识开始遍历的位置 for (i = 0; i < ArrayBorn.Length - Index - Len; i++)//遍历删除的长度 ArrayBorn[i + Index] = ArrayBorn[i + Len + Index];//覆盖要删除的值 //遍历删除长度后面的数组元素值 for (int j = (ArrayBorn.Length - 1); j > (ArrayBorn.Length - Len - 1); j--) ArrayBorn[j] = 0;//设置数组为0 } private void btn_RArray_Click(object sender, EventArgs e) { txt_RArray.Clear();//清空文本框 //使用循环赋值 for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++) { G_int_array[i] = i; } //使用循环输出 for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++) { txt_RArray.Text += G_int_array[i] + " "; } } private void btn_Sure_Click(object sender, EventArgs e) { rtbox_NArray.Clear();//清空文本框 DeleteArray(G_int_array, Convert.ToInt32(txt_Index.Text), Convert.ToInt32(txt_Num.Text));//删除数组中的元素 //使用循环输出删除元素的数组 for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++) { rtbox_NArray.Text += G_int_array[i] + " "; } } } }
七:不改变长度删除数组中的元素,截图
八:代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace DelArrayYesLength { public partial class Frm_Main : Form { public Frm_Main() { InitializeComponent(); } private int[] G_int_array = new int[8];//定义数组类型变量 /// <summary> /// 删除数组中的元素,并改变数组的长度 /// </summary> /// <param name="ArrayBorn">要从中删除元素的数组</param> /// <param name="Index">删除索引</param> /// <param name="Len">删除的长度</param> /// <returns>得到的新数组</returns> static int[] DeleteArray(int[] ArrayBorn, int Index, int Len) { if (Len <= 0)//判断删除长度是否小于等于0 return ArrayBorn;//返回源数组 if (Index == 0 && Len >= ArrayBorn.Length)//判断删除长度是否超出了数组范围 Len = ArrayBorn.Length;//将删除长度设置为数组的长度 else if ((Index + Len) >= ArrayBorn.Length)//判断删除索引和长度的和是否超出了数组范围 Len = ArrayBorn.Length - Index - 1;//设置删除的长度 int[] temArray = new int[ArrayBorn.Length - Len];//声明一个新的数组 for (int i = 0; i < temArray.Length; i++)//遍历新数组 { if (i >= Index)//判断遍历索引是否大于等于删除索引 temArray[i] = ArrayBorn[i + Len];//为遍历到的索引元素赋值 else temArray[i] = ArrayBorn[i];//为遍历到的索引元素赋值 } return temArray;//返回得到的新数组 } private void btn_RArray_Click(object sender, EventArgs e) { txt_RArray.Clear();//清空文本框 //使用循环赋值 for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++) { G_int_array[i] = i; } //使用循环输出 for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++) { txt_RArray.Text += G_int_array[i] + " "; } } private void btn_Sure_Click(object sender, EventArgs e) { rtbox_NArray.Clear();//清空文本框 G_int_array = DeleteArray(G_int_array, Convert.ToInt32(txt_Index.Text), Convert.ToInt32(txt_Num.Text));//删除数组中的元素 //使用循环输出删除元素的数组 for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++) { rtbox_NArray.Text += G_int_array[i] + " "; } } } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。