小白学C#:泛型集合的应用

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Books;

namespace formMain
{
    public partial class Form1 : Form
    {
        //创建一个容器
        private List<Book> bookList = new List<Book>();

        public Form1()
        {
            InitializeComponent();
            this.dgvBookList.AutoGenerateColumns = false;//不会自动再生成列
        }
        private void ShowBooks()
        {//对象初始化器
            Book ojbBook1 = new  Book()
            { 
                BarCode = 10001,
                BookName="C#编程",
                Author ="小白",
                UnitPrice =100,
                PublishDate =Convert.ToDateTime("2018-08-28")
            };
            Book ojbBook2 = new Book()
            {
                BarCode = 10002,
                BookName = "C#编程",
                Author = "小白",
                UnitPrice = 100,
                PublishDate = Convert.ToDateTime("2018-08-28")
            };
            Book ojbBook3 = new Book()
            {
                BarCode = 10003,
                BookName = "C#编程",
                Author = "小白",
                UnitPrice = 100,
                PublishDate = Convert.ToDateTime("2018-08-28")
            };
            Book ojbBook4 = new Book()
            {
                BarCode = 10004,
                BookName = "C#编程",
                Author = "小白",
                UnitPrice = 100,
                PublishDate = Convert.ToDateTime("2018-08-28")
            };
            Book ojbBook5 = new Book()
            {
                BarCode = 10005,
                BookName = "C#编程",
                Author = "小白",
                UnitPrice = 100,
                PublishDate = Convert.ToDateTime("2018-08-28")
            };
            bookList.Add(ojbBook1);
            bookList.Add(ojbBook2);
            bookList.Add(ojbBook3);
            bookList.Add(ojbBook4);
            bookList.Add(ojbBook5);
            //设置数据源
            this.dgvBookList.DataSource = this.bookList;
            //DataTable dt = new DataTable();
            //dt.Columns.Add(new DataColumn("0", typeof(string)));
            //dt.Columns.Add(new DataColumn("1", typeof(string)));
            //dt.Columns.Add(new DataColumn("2", typeof(string)));
            //dt.Columns.Add(new DataColumn("3", typeof(string)));
            //for (int j = 0; j < bookList.Count; j++)
            //{
            //    Book nowb = new Book();
            //    nowb = (Book)bookList[j];
            //    DataRow dr=dt.NewRow();
            //    dr["0"] = nowb.BookName;
            //    dr["1"] = nowb.Author;
            //    dr["2"] = nowb.UnitPrice;
            //    dr["3"] = nowb.PublishDate;
            //    dt.Rows.Add(dr);
            //}
            //this.dgvBookList.DataSource = dt;
        }

        private void dgvBookList_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        //显示图书列表
        private void btnShowBook_Click(object sender, EventArgs e)
        {
            ShowBooks();
        }

        //添加集合元素
        private void btnAdd_Click(object sender, EventArgs e)
        {
            Book ojbBook6 = new Book()
            {
                BarCode = 10006,
                BookName = "C#编程",
                Author = "小白",
                UnitPrice = 100,
                PublishDate = Convert.ToDateTime("2018-08-28")
            };
            this.bookList.Add(ojbBook6);
            //重新绑定数据源
            this.dgvBookList.DataSource= null;
            this.dgvBookList.DataSource = this.bookList;
        }

        //插入集合元素
        private void btnInSert_Click(object sender, EventArgs e)
        {
            Book ojbBook7 = new Book()
            {
                BarCode = 10007,
                BookName = "C#编程",
                Author = "小白",
                UnitPrice = 100,
                PublishDate = Convert.ToDateTime("2018-08-28")
            };
            this.bookList.Insert (3,ojbBook7);
            //重新绑定数据源
            this.dgvBookList.DataSource = null;
            this.dgvBookList.DataSource = this.bookList;
        }

        //删除选中对象
        private void btnDelSeleted_Click(object sender, EventArgs e)
        {
            //找到要删除的图书编码
            string barCode = this.dgvBookList.CurrentRow.Cells["BarCode"].Value.ToString();//转换类型
            //根据编码在集合中查询
            Book deletBook = null;//定义一个deletBook
            //for (int i=0;i <this.bookList .Count;i++)
            //{
            //    if (bookList[i].BarCode.ToString() == barCode)
            //    {
            //        deletBook = bookList[i];
            //        break;
            //    }
            //}


            //使用Linq查询
            deletBook = (from b in bookList where b.BarCode.ToString().Equals(barCode) select b).First<Book>();
            bookList.Remove(deletBook);
            //重新绑定数据源
            this.dgvBookList.DataSource = null;
            this.dgvBookList.DataSource = this.bookList;
        }
    }

}

首先要创建一个窗体,可以“文件-新建-项目”,选择“Windows窗体应用程序”,或者右击“解决方案-添加”,选择“Windows窗体应用程序”。
这里写图片描述
按要求添加好按扭(在左边的工具箱)
因为在后面对象初始化的时候用Books类里的方法(可以手动重新写再添加到类里面),可以直接之前写好的类添加到所需的项目里面。如图,可以直接点击鼠标拖下来这里写图片描述
然后在Form1.cs里的最上面Using,添加“Using Books”,添加完之后就可以引用Books里面的方法了。
在Form1.cs里创建一个容器,可以说是数据载体,然后初始化数据,
这里写图片描述
然后把数据添加到容器里面,再把容器送到dgvBookList.DataSource(窗体程序的列表)
这里写图片描述
然后在“显示图列表”按扭中输出
这里写图片描述
关于添加、插入、删除元素的时候,有一点需要注意的:就是添加或者插入或者删除元素之后,要重新绑定数据源,也就是更新数据源。
这里写图片描述

到最后做出来的效果:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值