C#在Datagridview中查找重复的值

时间:2012-04-23 11:34:03

标签: c# datagridview duplicates

对我的c sharp项目进行一些用户界面限制。 使用visual studio 2008和C#.net。

所以我有一些代码,它是一个嵌套的for循环,应该遍历列行并检查是否有重复。

考虑一下我应该将文本更改为可以打印出来的数组,因为可以有多于1个副本。

简单地说,有一个零件联盟,增加一个是独特的。用户希望改变联盟的部分,有些人会更改一些。

这是我到目前为止所拥有的。

 public void CheckForDuplicate()
    {
        DataGridViewRowCollection coll = ParetoGrid.Rows;
        DataGridViewRowCollection colls = ParetoGrid.Rows;

        foreach (DataGridViewRow item in coll)
        {
            foreach (DataGridViewRow items in colls)
            {
                if (items.Cells[5].Value == item.Cells[5].Value)  
                {   
                    if(items.Cells[2].Value != item.Cells[2].Value)
                    {
                        txtDupe.Text = items.Cells[2].Value.ToString();
                        this.Refresh();
                        dupi = false;
                    }
                }
            }
        }
    }

没有任何事情发生,什么都没有,似乎总是错误的。一些奇怪的原因调试没有抓到任何东西。 所以,如果我错过了一个愚蠢的衬垫,或者如果有更好的方法可以做到,我会徘徊吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

在LINQ中选择Distinct应该这样做。使用方法语法,如:

    public bool allUniqueRows()
    {
        var distinctCount =  from r in ParetoGrid.Rows
select r.whateverElement.Distinct().Count();
     if(distinctCount == ParetoGrid.Rows.Count())
    {
    return true;
    }
    else
    {
    return false;
    }
    }