我有使用以下代码从gridview接收值的代码:

foreach (GridViewRow gr in MainGridView.Rows)
{

     if (MainGridView.Rows[gr.RowIndex].Cells[1].Text == "Total" || MainGridView.Rows[gr.RowIndex].Cells[0].Text == "Total")
             MainGridView.Rows[gr.RowIndex].Font.Bold = true;
}


它获取某些单元格包含特定文本的所有行。是否可以通过LINQ?

最佳答案

我想获取特定单元格包含单词的行
  总。是否可以通过LINQ?


IEnumerable<GridViewRow> rows = MainGridView.Rows.Cast<GridViewRow>()
    .Where(row => row.Cells[0].Text == "Total" || row.Cells[1].Text == "Total");


或者,更易于维护:

int[] cells = { 0, 1 };
IEnumerable<GridViewRow> rows = MainGridView.Rows.Cast<GridViewRow>()
    .Where(row => cells.Any(c => row.Cells[c].Text == "Total"));


如果要不区分大小写进行比较(也请使用"total"):

.Where(row => cells.Any(c => row.Cells[c].Text.Equals("Total", StringComparison.InvariantCultureIgnoreCase)));


如果现在要使所有这些行变为粗体,请使用foreach

foreach(var row in rows)
    row.Font.Bold = true;

关于c# - 通过LINQ从gridview获取列值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30048495/

10-12 12:43