下面我将针对“详解C#中一维数组的插入”进行完整的介绍。
插入一维数组
在C#中插入一维数组,我们可以使用数组的 Array.Copy()
和 Array.Resize()
方法。下面分别介绍这两个方法的用法:
1.使用Array.Copy()方法
int[] arr = { 1, 2, 3, 4, 5 }; //初始数组
int[] arrNew = new int[arr.Length + 1];//增加一个元素后的新数组
int position = 2;//需要插入的位置
// 复制原数组的前position个元素到新数组中
Array.Copy(arr, 0, arrNew, 0, position);
// 插入需要插入的元素
arrNew[position] = 6;
// 将原数组后面的元素复制到新数组中
Array.Copy(arr, position, arrNew, position + 1, arr.Length - position);
上述代码,我们首先创建一个初始数组arr,然后定义一个新数组arrNew,这个新数组的长度比原来的数组多1,我们假设需要把6插入到数组的第3个位置上,则令position=2;接着我们用Array.Copy()
方法来完成数组的复制和插入过程。
2.使用Array.Resize()方法
int[] arr = { 1, 2, 3, 4, 5 }; //初始数组
Array.Resize(ref arr, arr.Length + 1);//增加一个元素后的新数组
int position = 2;//需要插入的位置
//将原数组中需要插入的位置以后的元素向后移动一位
for (int i = arr.Length - 1; i > position; i--)
{
arr[i] = arr[i - 1];
}
// 将需要插入的元素插入到指定位置
arr[position] = 6;
上述代码,我们首先创建一个初始数组arr,然后使用Array.Resize()
方法重新定义arr的长度,使它的长度比原来的数组多1;接着我们用for循环将原数组中需要插入的位置以后的元素向后移动一位;最后,我们将需要插入的元素插入到指定的位置。
在使用Array.Resize()
方法后,原数组的长度会变化,因此我们需要使用ref
关键字,传递数组的引用。
示例
下面我们来模拟两种不同场景下的数组插入操作。
示例一
假设我们有一个字符串类型的一维数组,我们需要在数组的第2个位置上插入一个“Hello World”字符串,代码如下:
string[] arr = { "Monday", "Tuesday", "Wednesday", "Thursday" };
string[] arrNew = new string[arr.Length + 1];
int position = 1;//需要插入的位置
//将原数组的前position个元素复制到新数组中
Array.Copy(arr, 0, arrNew, 0, position);
//插入需要插入的元素
arrNew[position] = "Hello World";
//将原数组后面的元素复制到新数组中
Array.Copy(arr, position, arrNew, position + 1, arr.Length - position);
foreach (string str in arrNew)
{
Console.WriteLine(str);
}
运行结果:
Monday
Hello World
Tuesday
Wednesday
Thursday
示例二
假设我们有一个学生类型的一维数组,我们需要在数组的第3个位置上插入一个新的学生记录,代码如下:
class Student
{
public string name { get; set; }
public int age { get; set; }
}
Student[] arr = new Student[5];
arr[0] = new Student { name = "小明", age = 20 };
arr[1] = new Student { name = "小红", age = 21 };
arr[2] = new Student { name = "小刚", age = 22 };
arr[3] = new Student { name = "小名", age = 23 };
arr[4] = new Student { name = "小强", age = 24 };
Student[] arrNew = new Student[arr.Length + 1];//增加一个元素后的新数组
int position = 2;//需要插入的位置
//将原数组的前position个元素复制到新数组中
Array.Copy(arr, 0, arrNew, 0, position);
//插入需要插入的元素
arrNew[position] = new Student { name = "小新", age = 25 };
//将原数组后面的元素复制到新数组中
Array.Copy(arr, position, arrNew, position + 1, arr.Length - position);
//遍历新数组并打印
foreach (Student s in arrNew)
{
Console.WriteLine("{0} {1}", s.name, s.age);
}
运行结果:
小明 20
小红 21
小新 25
小刚 22
小名 23
小强 24
以上就是关于C#中一维数组的插入的详细介绍和示例说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解C#中一维数组的插入 - Python技术站