簡體   English   中英

如何檢查GridView上每一行的列值是否相同?

[英]How can I check if column value same on every row on GridView?

我有10行的網格視圖。

單擊按鈕后,我想檢查並確保在gridviewfirstname列下每個單元格值相同或不同。

如果所有單元格值都相同,則調用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 < 11i < 10 ,開始i1 ,因為你已經得到的第一行的值,並將其存儲到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM