0

私のCシャーププロジェクトでユーザーインターフェイスの制限を行っています。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 に答える