您的位置:首页 > 编程语言 > C#

C# 的List<T>筛选数据填充到另一个List<T>

2016-02-05 16:37 423 查看
在使用List<T>获取数据库表的时候,每次用户操作都重新访问数据库,然后返回List<T>,会严重影响程序运行效率的方式,其实List<T>自带有筛选的方法,把想要的数据筛选到另一个List<T>中,不用重新访问数据库,直接筛选后绑定控件显示即可。

示例如下:
        public NumberModel currentmark;
        public MainFrm mainFrm;

        private List<GoodsModel> goodslist;
        private List<GoodsKindModel> goodskindlist;

 
        private void lstgoodkind_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                if (lstgoodkind.SelectedValue.ToString() != "XY.Model.GoodsKindModel")
                {
                    string id = lstgoodkind.SelectedValue.ToString();
                    string kname = lstgoodkind.Text;
                    if (kname != "全部")
                    {
                        List<GoodsModel> glist = goodslist.FindAll(delegate(GoodsModel p) { return p.GoodsKind == kname; });
                        bindgoods(dgvgoods, glist);
                    }
                    else
                    {
                        bindgoods(dgvgoods, goodslist);
                    }
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {
                string gid = dgvgoods.Rows[dgvgoods.SelectedRows[0].Index].Cells["goodsid"].Value.ToString();
                GoodsModel goods = goodslist.Find(delegate(GoodsModel p) { return p.ID == gid; });
                XY.BLL.ConsumeBll.Add(goods, currentmark, mainFrm.user);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: