[英]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.