日期:2014-05-17  浏览次数:21324 次

怎么在datagridview的一列上查找某个值的重复数量
datagridview没有绑定数据库,有一列姓名,其中有些是重复的,怎么才能选其中一个姓名在textbox上显示这一列有多少个重复的,就是数量?求教,谢谢!

------解决方案--------------------
本帖最后由 bdmh 于 2013-09-22 13:41:12 编辑
遍历或者用linq
------解决方案--------------------
refer:

        private void Form1_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("name", typeof(string));
            dt.Columns.Add("age", typeof(string));

            DataRow dr = null;
            dr = dt.NewRow();
            dr["name"] = "guwei4037";
            dr["age"] = 20;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["name"] = "guwei4037";
            dr["age"] = 20;
            dt.Rows.Add(dr);

            this.dataGridView1.DataSource = dt;
            this.dataGridView1.AllowUserToAddRows = false;//设置这个为了将默认产生的行去除,否则结果多1行

            string value = "guwei4037";//假设这是你得到的点击的cell的值
            MessageBox.Show(this.dataGridView1.Rows.OfType<DataGridViewRow>().Select(x => (string)x.Cells["name"].Value == value).ToList().Count + "");//这里输出列name当中guwei4037的数量 添加了2次,所以为2
        }

------解决方案--------------------
用LINQ最方便
 
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
textBox1.Text=dt.AsEnumerable().Where(a => a.Field<string>("姓名").Equals(dataGridView1.SelectedRows[0].Cells["姓名"].Value.ToString();)).Count();