0

对我的 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;
                    }
                }
            }
        }
    }

什么都没有发生,什么都没有,似乎它总是假的。一些奇怪的原因调试没有捕捉到任何东西。所以如果我错过了一个愚蠢的班轮,或者如果有更好的方法来做到这一点,我会徘徊吗?

非常感谢!

4

1 回答 1

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;
    }
    }
于 2012-04-23T12:10:09.917 回答