datagridView 去重

00潤物無聲00發表於2016-04-10
        private void btnxQuChong_Click(object sender, EventArgs e)
        {
            //宣告一個字典,用於記錄去重後的資料
            Dictionary<string, int> addDict = new Dictionary<string, int>();


            //記錄要刪除掉的索引值
            List<int> removeList = new List<int>();
            //迴圈datagrid
            for (int i = 0; i < dgvTotal.Rows.Count; i++)
            {
                //判斷字典中存在了相同的值.就把當前的索引新增到待刪除的記錄中,這裡判斷的是Md5Code列
                if (addDict.ContainsKey(dgvTotal.Rows[i].Cells[1].Value.ToString()))
                {
                    removeList.Add(i);
                }
                else
                {
                    //不存在就新增到字典中
                    addDict.Add(dgvTotal.Rows[i].Cells[1].Value.ToString(), i);
                }
            }


            //迴圈要刪除的資料,反向刪除,否則索引會有問題
            for (int j = removeList.Count - 1; j >= 0; j--)
            {
                //刪除掉不用的行
                dgvTotal.Rows.RemoveAt(removeList[j]);
            }
            removeList.Clear();
            addDict.Clear();
        }