1. 主页
  2. 文档
  3. 数组的处理算法
  4. 删除数组元素

删除数组元素

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DelArrayNo
{
    class Program
    {
        /// <summary>
        /// 删除数组中的元素
        /// </summary>
        /// <param name="ArrayBorn">要从中删除元素的数组</param>
        /// <param name="Index">删除索引</param>
        /// <param name="Len">删除的长度</param>
        static void DeleteArray(string[] ArrayBorn, int Index, int Len)
        {
            // |m| r s o f t 老
            // |0| 1 2 3 4 5

            //m  删除的
            //0

            // r s o f t null   新
            // 0 1 2 3 4 5

            //DeleteArray(ArrayBorn,0,1);

            if (Len <= 0)
            {//判断删除长度是否小于等于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++) //5 - 0 - 1  = 1     0 1 2 3 4
            {//遍历删除的长度
                ArrayBorn[i + Index] = ArrayBorn[i + Len + Index];
                //ArrayBorn[0+0]=ArrayBorn[0+1+0] | ArrayBorn[1+0]=ArrayBorn[1+1+0] | ArrayBorn[2+0]=ArrayBorn[2+1+0] | ArrayBorn[3+0]=ArrayBorn[3+1+0] | ArrayBorn[4+0]=ArrayBorn[4+1+0]
                //覆盖要删除的值
                //遍历删除长度后面的数组元素值
            }

            //  6-1=5   5>6-1-1=4(4>3) j--(<--) 如果j++(-->)
            //  从4开始 4>3 
            for (int j = (ArrayBorn.Length - 1); j > (ArrayBorn.Length - Len - 1); j--)
            {
                //ArrayBorn[3]
                //Console.WriteLine(j); //5

                ArrayBorn[j] = null;//设置数组为空

            }
        }
        static void Main(string[] args)
        {
            string[] ArrayStr = new string[] { "m", "r", "s", "o", "f", "t" };//声明一个字符串数组
            Console.WriteLine("源数组:");
            foreach (string i in ArrayStr)//遍历源数组
                Console.Write(i + " ");//输出数组中的元素
            Console.WriteLine();//换行
            DeleteArray(ArrayStr, 0, 1);//删除数组中的元素
            Console.WriteLine("删除元素后的数组:");
            foreach (string i in ArrayStr)//遍历删除元素后的数组
                Console.Write(i + " ");//输出数组中的元素
            Console.ReadLine();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace demo1
{
    internal class abc
    {
        static void Main(string[] args)
        {
            //a b |c| d f g 老  从2开始 减去
            //0 1 |2| 3 4 5

            //a b  c  d f g 新
            //0 1  2  3 4 5

            //a b  d  f g null   新
            //0 1  2  3 4 5


            //老数组
            String[] ar = new String[] { "a", "b", "c", "d", "f", "g" };
            //删除索引
            int ari = 2;
            //删除长充
            int cd = 1;

            if (ari < 0) {
                return;
            }
            if (cd <= 0) {
                return;
            }

            for (int i = 0; i < ar.Length - ari - cd; i++) //6-1=5  
            {
               //Console.WriteLine(i); // 0 1 2
                ar[i+ari]=ar[i + ari + cd]; //    0+2+1  1+2+1  2+2+1
            }

            // j = 6-1(5)  j>6-1-1(5>6-1-1=5>4)  
            for (int j = (ar.Length - 1); j > (ar.Length - cd - 1); j--)
            {
                ar[j] = null;
            }


                for (int j = 0; j < ar.Length; j++) {
               //Console.WriteLine(ar[j]);
                Console.WriteLine(j);
            }





        }

        //static int[] AddArray(int[] ArrayBorn, int[] ArrayAdd, int Index)
        //{
           
        //}

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

我们要如何帮助您?