1. 主页
  2. 文档
  3. 数组的处理算法
  4. 数组添加数组

数组添加数组

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]);
            }

        }
    }
}
    
这篇文章对您有用吗?

我们要如何帮助您?