2016-08-29 6 views
-2

各行のグリッドビュー列に同じ値が設定されているかどうかを確認する方法を教えてください。各行のgridview列の値が同じであることを確認してください

以下のコードにどのような条件が適用されますか?

コードあなたforeach内部foreach以外

int y = 0; 
foreach (GridViewRow row in gridreq.Rows) 
{ 
    string catid = row.Cells[2].Text; 
    if (//condition) 
    { 
     y = y + 1; 

    } 
} 

if (y == 0) 
{ 

//code 

} 
else 
{ 
//code 
} 

答えて

2

すべて他の行の値に対する行の値を確認するための実現可能な方法はありません。いくつかの回避策:

おそらく最初の値をチェックできますか?

int y = 0; 
var checkItem = gridreq.Rows[0].Cells[2].Text; 
foreach (GridViewRow row in gridreq.Rows) 
{ 
    string catid = row.Cells[2].Text; 
    if (catid == checkItem) //or use String.compare here 
    { 
     y = y + 1; 

    } 
} 

別の方法は、それ前行のものに対して値をチェックすることです。

int y = 0; 
string catidCheck = ""; 
foreach (GridViewRow row in gridreq.Rows) 
{ 
    string catid = row.Cells[2].Text; 
    if (catid == catidCheck) //or use String.compare here 
    { 
     y = y + 1; 
    } 
    catidCheck = catid; 
} 
1

Linq distinctでこれを行うことが可能であるべきである:

int y = gridreq.Rows.Select((row) => row.Cells[2].Text).Distinct().Count() 

その後、私はあなたの条件は後でif (y == 1)だろうと思います。

関連する問題