如何检查每行上的网格视图列是否具有相同的值。
将在下面的代码中应用的条件是什么。
代码
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
}
答案 0 :(得分:2)
除了foreach
内的foreach
,除了所有其他行的值之外,没有可行的方法来检查行的值。一些解决方法:
也许你可以检查第一个值?
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 :(得分:1)
应该可以使用Linq distinct:
执行此操作int y = gridreq.Rows.Select((row) => row.Cells[2].Text).Distinct().Count()
然后我猜你以后的情况会是if (y == 1)
。