[英]How can I check if column value same on every row on GridView?
我有10行的網格視圖。
單擊按鈕后,我想檢查並確保在gridview
的firstname
列下每個單元格值相同或不同。
如果所有單元格值都相同,則調用changeCellValues()
方法。 如果任何單元格值不同,則MessageBox.Show("You cant use your method");
private void button1_Click(object sender, EventArgs e)
{
string x;
string y;
x = dataGridView1.Rows[0].Cells[1].Value.ToString();
for (int i = 0; i < 11; i++)
{
y = dataGridView1.Rows[i].Cells[1].Value.ToString();
if (x == y) continue;
MessageBox.Show("You cant use your method");
}
}
如何檢查GridView上每一行的列值是否相同?
如果你有10
行,改變i < 11
至i < 10
,開始i
從1
,因為你已經得到的第一行的值,並將其存儲到x
。你的方式似乎是正確的,但是,而不是顯示環內的消息框,你可以使用這樣的東西:
x = dataGridView1.Rows[0].Cells[1].Value.ToString();
bool control = true;
for (int i = 1; i < 10; i++)
{
y = dataGridView1.Rows[i].Cells[1].Value.ToString();
if (x != y) { control = false; break; }
}
if(!control) MessageBox.Show("You cant use your method");
else changeCellValues();
使用LINQ的替代方法...獲取“名字”列中的所有內容,使用Distinct
刪除重復項,然后計算唯一名稱的數量。 (如果您擁有多個唯一名稱,則它們並不完全相同。)
var isSameName = dataGridView1.Rows.Cast<DataGridViewRow>()
.Select(x => Convert.ToString(x.Cells["firstname"].Value))
.Distinct().Count() == 1;
if (!isSameName)
{
MessageBox.Show("You cant use your method");
return;
}
changeCellValues();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.