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元素 } } } }
输出结果:
程序和源码下载: