C# 通过LINQ从gridview获取列值

C# 通过LINQ从gridview获取列值,c#,linq,gridview,C#,Linq,Gridview,我有使用以下代码从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.Bo

我有使用以下代码从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吗

如果现在要将所有这些行加粗,请使用
foreach

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

你需要买什么?根据标题,列值,但根据问题,行具有该值。我想获得特定单元格中包含单词
Total
的行,我得到错误
非泛型类型“System.Collections.IEnumerable”不能与类型参数一起使用
@bogojane:是否包含
使用System.Collections.Generic
?@bogojane:顺便说一句,您需要使用
强制转换
,因为旧类(从网格的
属性返回)没有实现泛型
IEnumerable
,而只实现
IEnumerable
。因此,您需要使用
Enumerable.cast来强制转换对象,以便能够使用LINQ。感谢您提供的信息。我也在看语法。LINQ比旧方法快得多。@bogojane:在大多数情况下,它只会根据您编写和维护代码所需的时间而变快。就CPU周期或内存消耗而言,它并没有更快。循环只是对你隐藏。但这是一个很好的工具,可以编写我下周仍能理解的可读代码。
int[] cells = { 0, 1 };
IEnumerable<GridViewRow> rows = MainGridView.Rows.Cast<GridViewRow>()
    .Where(row => cells.Any(c => row.Cells[c].Text == "Total"));
.Where(row => cells.Any(c => row.Cells[c].Text.Equals("Total", StringComparison.InvariantCultureIgnoreCase)));
foreach(var row in rows)
    row.Font.Bold = true;