List小程序
使用泛型List来实现:添加元素,删除元素,查找元素,清空元素,查看元素,索引插入元素。
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 List程序
{
public partial class Form1 : Form
{
List<string> name = new List<string>();//声明字符串list
List<int> age = new List<int>();//声明整型list
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)//添加元素 单击事件
{
if (txtname.Text == "" || txtage.Text == "")//判断 姓名和年龄文本框是否为空。
{
MessageBox.Show("姓名和年龄不能为空.");//提示
return;//退出
}
int i;//声明整型变量
if (int.TryParse(txtage.Text,out i) == false)//判断年龄文本框是否可以转变成整型
{
MessageBox.Show("年龄输入有误!");//提示
return;//退出
}
if (Convert.ToInt32(txtage.Text) < 0 || Convert.ToInt32(txtage.Text) > 150)//判断输入的年龄值是否小于0或者大于150
{
MessageBox.Show("年龄范围只能为:0~149.");//提示
return;//退出
}
name.Add(txtname.Text);//将姓名添加到name中
age.Add(Convert.ToInt32(txtage.Text));//将年龄添加到age中
if (name.Count != age.Count)//判断姓名索引和年龄索引是否不同。
{
MessageBox.Show("姓名的索引为:" + name.Count.ToString()+ ",年龄的索引为:"+ age.Count.ToString() + "。");//提示
return;//退出
}
txtdh.Clear();//清空多行文本框
for (int nn = 0;nn < name.Count;nn++)//循环
{
txtdh.AppendText("索引:" + nn + " 姓名:" + name[nn] + " 年龄:" + age[nn]+"\r\n");//输出list元素
}
}
private void button2_Click(object sender, EventArgs e)//删除姓名元素 按钮单击事件
{
if (name.Contains(txtname.Text))//判断name中是否包含 姓名文本框内容
{
txtdh.Clear();//清空多行文本框
for (int i = 0; i < name.Count; i++)//循环
{
if (name[i] == txtname.Text)//判断name元素 和 姓名文本框内容是否相同
{
txtdh.AppendText("索引:" + i + " 姓名:" + name[i] + " 年龄:" + age[i] + "已删除.\r\n");//输出list元素
name.RemoveAt(i);//删除索引值对应元素
age.RemoveAt(i);//删除索引值对应元素
i--;//上面一删除一个索引内容,所以 循环要减去1。
//比如:第6个索引和 姓名文本框内容一样, 删除第6个索引的内容,那么原来第7个索引则上升到第6个,所以要将i减去1来判断。
//(如果不减1,那么原来的第7个索引内容就没有检测,而过去执行i++)
}
}
}
else//没有找到姓名
{
MessageBox.Show("没有找到你删除的姓名.");//提示
return;//退出
}
}
private void button3_Click(object sender, EventArgs e)//查找姓名元素 按钮单击事件
{
if (name.Contains(txtname.Text))//判断name中是否包含 姓名文本框内容
{
txtdh.Clear();//清空多行文本框
for (int i = 0; i < name.Count; i++)//循环
{
if (name[i] == txtname.Text)//判断name元素 和 姓名文本框内容是否相同
{
txtdh.AppendText("索引:" + i + " 姓名:" + name[i] + " 年龄:" + age[i] + "\r\n");//输出list元素
}
}
}
else//没有找到姓名
{
MessageBox.Show("没有找到你查找的姓名.");//提示
return;//退出
}
}
private void button5_Click(object sender, EventArgs e)// 清空元素 按钮 单击事件
{
txtdh.Clear();//清空多行文本框
name.Clear();//清空name
age.Clear();//清空age
MessageBox.Show("已经清空所有元素。");//提示
}
private void button4_Click(object sender, EventArgs e)//查看所有元素 按钮单击事件
{
txtdh.Clear();//清空多行文本框
if (name.Count==0)//判断name中是否为空
{
MessageBox.Show("List中没有任何元素。");//提示
return;//退出
}
for (int i = 0; i < name.Count; i++)//循环
{
txtdh.AppendText("索引:"+i+" 姓名:" + name[i] + " 年龄:" + age[i] + "\r\n");//输出list元素
}
}
private void button6_Click(object sender, EventArgs e)// 索引插入元素 按钮单击事件
{
int s, a;//声明整型变量
if (int.TryParse(txtsy.Text,out s) == false)//判断索引值能否转变为整型
{
MessageBox.Show("索引值必须是大于或等于0的整数.");//提示
return;//退出
}
if (Convert.ToInt32(txtsy.Text) > name.Count || Convert.ToInt32(txtsy.Text) < 0)//判断索引值是否大于0和小于name最大元素索引值
{
MessageBox.Show("当前索引值的范围:0~"+ name.Count);//提示
return;//退出
}
if (int.TryParse(txtage.Text,out a) == false) //判断年龄能否转变为整型
{
MessageBox.Show("年龄输入有误!");//提示
return;//退出
}
if (Convert.ToInt32(txtage.Text) < 0 || Convert.ToInt32(txtage.Text) > 150)//判断索引值是否大于0和小于150
{
MessageBox.Show("年龄范围只能为:0~149.");//提示
return;//退出
}
name.Insert(Convert.ToInt32(txtsy.Text),txtname.Text);//将姓名元素插入到指定的索引位置
age.Insert(Convert.ToInt32(txtsy.Text),Convert.ToInt32(txtage.Text));//将年龄元素插入到指定的索引位置
txtdh.Clear();//清空多行文本框
for (int i = 0; i < name.Count; i++)//循环
{
txtdh.AppendText("索引:" + i + " 姓名:" + name[i] + " 年龄:" + age[i] + "\r\n");//输出list元素
}
}
}
}输出结果:
程序和源码下载:
