当前位置:首页 > C#学习 > C#软件 > 正文内容

List小程序

小道6年前 (2018-09-10)C#软件6539

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


扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://daobk.com/post/102.html

分享给朋友:

“List小程序” 的相关文章

C# 桌面小闹钟1.0版:当前时间,定时,取消定时,托盘显示

C# 桌面小闹钟1.0版:当前时间,定时,取消定时,托盘显示

C#版 桌面小闹钟1.0 显示当前时间,可以定时,取消定时,最小化托盘显示.关闭提示信息.源码+注释:using System; using System.Windows.Forms; //窗体需要使用的 using System.Media;/...

C# 定时关机小程序

C# 定时关机小程序

C# 定时关机小程序using System; using System.Diagnostics; using System.Windows.Forms; namespace 定时关机小程序 {     p...

C# Winform窗体单机飞行棋(源码)

C# Winform窗体单机飞行棋(源码)

根据 控制台飞行棋 改造为Winform窗体飞行棋,主要有 登录窗体,游戏窗体,胜利窗体.使用new批量创建 按钮(地图格子),并按顺序排列地图。可显示当前玩家所在坐标、距离终点还剩步数和已取胜局数。使用按钮 背景图片 模拟 掷骰子结果图片。以下为部分代码:   &nb...

C# 费用计算器(源码)  可计算项目材料数量,材料所需费用,所有材料总价,其他费用,利润金额等...

C# 费用计算器(源码) 可计算项目材料数量,材料所需费用,所有材料总价,其他费用,利润金额等...

制作本软件初衷:做本软件开始主要是为了计算 施工 项目资金减去所需的材料成本和人工成本是否有利润。软件部分使用动态创建控件。GroupBox控件限制在最多创建9个。PS:另一种方法可以先将界面调整完成,在通过使用GroupBox控件的 Visible 属性 隐藏控件。添加新材料 可以将控件显示。(具...

评论列表

找果树
6年前 (2018-09-13)

代码我真的是看不懂,很高级的样子

jues
jues IP:广东省
6年前 (2018-09-11)

不错,net也能和java一样跨平台在linux下运行,这就够了。

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。