DataGridView,如何跳过重复项

本文关键字:何跳过 DataGridView | 更新日期: 2023-09-27 17:58:34

我有一个DataGridView,我试图检查行是否已经存在,如果已经存在,我想跳过外部"foreach"语句的循环。

我想到了这样的东西,但也许有一些更优化的方法可以做到这一点。

(此功能是删除当前行,并插入新行,以避免重复)

   (outer foreach)
        for (int i = 0; i < dataGridViewFarm.RowCount; i++)
        {
            if (villageParams[3] == dataGridViewFarm.Rows[i].Cells[3].Value.ToString())
            {
                dataGridViewFarm.Rows.Remove(dataGridViewFarm.Rows[i]);
            }
        }

DataGridView,如何跳过重复项

您可以使用Linq to对象从dataGridView的源中删除重复的行,并将新对象设置为新的DataSource

方法1:示例:假设cell[3]mycell3

var noDuplicationList = myList.GroupBy(x => x.mycell3)
                     .Select(g => g.First())
                     .ToList();

方法2:在MoreLinq项目中使用DistinctBy()

安装更多软件包

var noDuplicationList = myList.DistinctBy( x => x.mycell3).ToList();

它的接缝就像使用Windows窗体一样。添加此标签可能会有所帮助,以便获得答案。

永远不会少。这些行是如何创建的?用户输入还是形成集合?在集合的情况下:在将添加到dataGridView之前,我只会检查重复项。在用户输入的情况下:在创建行之前还要检查重复项。