繁体   English   中英

DataGridView,如何跳过重复项

[英]DataGridView, how to skip duplicates

我有一个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]);
            }
        }

好像您正在使用Windows窗体。 为了获得答案,添加此标签可能会有所帮助。

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

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

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

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

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

安装包morelinq

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM