using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices.ComTypes;
using System.Text;
using System.Threading.Tasks;
namespace demo1
{
internal class Program
{
static void Main(string[] args)
{
//新数组
// 11 22 33 |888 999| 44 55 66
// 0 1 2 | 3 4 | 5 6 7 = 8
// 0 1 2 3 4
// 11 22 33 888 999
//老数组
// 0 1 2 | | 3 4 5 =6
// 11 22 33 | | 44 55 66
int[] ArrayBorn = new int[] { 11, 22, 33, 44, 55, 66 }; //老数组 6
int[] ArrayAdd = new int[] { 888, 999 }; //添加数组 2
int Index = 2; //插入索引
if (Index >= (ArrayBorn.Length))//判断添加索引是否大于数组的长度 6
Index = ArrayBorn.Length - 1;//将添加索引设置为数组的最大索引 6-1
int[] temp = new int[ArrayBorn.Length + ArrayAdd.Length];//声明一个新的数组 老数组+新数组的(索引)
for (int i = 0; i < temp.Length; i++)//遍历新数组的元素
{
//循环的时侯,数组的越界,从哪里开始循环
if (Index >= 0)//判断添加索引是否大于等于0 从0开始
{
if (i < (Index + 1))
{//判断遍历到的索引是否小于添加索引加1
//前边部分 0 1 2 3
temp[i] = ArrayBorn[i];
}//交换元素值 012
else if (i == (Index + 1))//判断遍历到的索引是否等于添加索引加1 3 4
{
//中间位置 到4
for (int j = 0; j < ArrayAdd.Length; j++) {
//遍历要添加的数组
// 0 1 temarray[i+0]=arrayadd[0]
temp[i + j] = ArrayAdd[j];//为遍历到的索引设置添加值
// 前边部分索引3 + 新填加的索引2 - 1 因索引从0开始 5位置要改成新值
}
i = i + ArrayAdd.Length - 1;//将遍历索引设置为要添加数组的索引最大值 = 3+2-1
}
else //后边部分 是>于 5 6 7 老数组 索引为 4 5 6 的值。放到 新数组的位置上
{
// 5 6 7 5-2=3 6-2=4 7-2=5 获得 老数组3 4 5 索引的值 放到新数组中
//Console.WriteLine(i + "****" + ArrayAdd.Length);
//后边部分
temp[i] = ArrayBorn[i - ArrayAdd.Length];//交换元素值
//Console.WriteLine(i);
}
}else //<=0
{
Console.WriteLine(i);
if (i == 0)//判断遍历到的索引是否为0
{
for (int j = 0; j < ArrayAdd.Length; j++)//遍历要添加的数组
temp[i + j] = ArrayAdd[j];//为遍历到的索引设置添加值
i = i + ArrayAdd.Length - 1;//将遍历索引设置为要添加数组的索引最大值
}
else
temp[i] = ArrayBorn[i - ArrayAdd.Length];//交换元素值
}
}
for (int u = 0; u < temp.Length; u++)
{
Console.WriteLine(temp[u]);
}
}
}
}