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)
//{
//}
}
}