演示如何在删除数组元素后改变其长度。首先单击“随机生成数组”按钮,生成一个数组;然后分别输入开始删除的索引和要删除的元素个数;最后,单击“确定”按钮,从生成的数组的指定索引处删除指定的元素个数,从而生成一个新的数组。
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace _3_1
{
public partial class Form1 : Form
{
ArrayList number = new ArrayList(); //创建一个数组
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = ""; //当“随机生成数组”按钮被点击时,清空文本框里面的内容以及number数组里面的内容
number.Clear();
for ( int i = 0; i< 8; i++) //for循环控制随机生成的数字个数,此处设为8个
{
System.Random number1 = new Random(); //随机生成一个数字
int t = number1.Next(0, 100); //随机生成的数字在0~100之间
number.Add(t+" "); //将随机生成的数字放在number数组中
}
for (int i= 0; i < 8; i++) //for循环使初始化的数组显示在textBox1的文本框中
{
this.textBox1.Text = this.textBox1.Text + number[i];
}
}
private void button2_Click(object sender, EventArgs e) //“确定”按钮点击后的事件
{
string[] getstart = textBox2.Lines;//获取开始删除的索引
string[] getnumber = textBox3.Lines; //获取要删除的元素个数
string star = getstart[0]; //获取数组内容,将其赋值给string类型的star
string movenumber = getnumber[0];//获取数组内容,将其赋值给string类型的movenumber
int star1 = Convert.ToInt32(star);//将string类型转换为int
int number2 = Convert.ToInt32(movenumber);//将string类型转化为int
if (star1 < 0 || star1 > 7) //如果索引输入不合法
{
MessageBox.Show("索引输入错误,请输入0~7");//提示错误
}
else if ((star1 + number2) > 8)//如果从当前索引处开始,没有足够多的元素删除
{
MessageBox.Show("要删除的元素个数超出现有能删除的元素个数");//提示错误
}
else//满足删除条件时
{
number.RemoveRange(star1, number2);// 元素删除
for (int i = 0; i < number.Count; i++)//for循环输出删除后的数组
{
this.textBox4.Text = this.textBox4.Text + number[i];
}
}
}
}
}