使用泛型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元素
            }
        }
    }
}

输出结果:

image.png


程序和源码下载:

List小程序.rar


更新日期: 2018年09月10日
文章标签: Windows程序WinForm文本框泛型outforeach语句for语句List
文章链接: http://www.qljia.com/post/102.html