C# 使用Linq从DataGridView中选择多行

C# 使用Linq从DataGridView中选择多行,c#,linq,datagridview,C#,Linq,Datagridview,我试图从DataGridView中选择多行,而不是使用for each循环进行迭代 我可以使用以下代码选择1项: DataGridViewRow row2 = (from DataGridViewRow r in dgView.Rows where r.Cells["name"].Value.ToString().Equals("Akins Ford")select r).FirstOrDefault(); List<DataGridViewRow> rows2

我试图从
DataGridView
中选择多行,而不是使用for each循环进行迭代

我可以使用以下代码选择1项:

DataGridViewRow row2 =
     (from DataGridViewRow r in dgView.Rows
     where r.Cells["name"].Value.ToString().Equals("Akins Ford")select r).FirstOrDefault();
List<DataGridViewRow> rows2 =
      (from DataGridViewRow r in dgView.Rows
       where r.Cells["status"].Value.ToString().Equals("active")select r);
但当我尝试选择多行时,使用以下代码:

DataGridViewRow row2 =
     (from DataGridViewRow r in dgView.Rows
     where r.Cells["name"].Value.ToString().Equals("Akins Ford")select r).FirstOrDefault();
List<DataGridViewRow> rows2 =
      (from DataGridViewRow r in dgView.Rows
       where r.Cells["status"].Value.ToString().Equals("active")select r);
列出行2=
(来自dgView.Rows中的DataGridViewRow r
其中r.Cells[“status”].Value.ToString().Equals(“active”)选择r;
我有一个错误:

错误2无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“System.Collections.Generic.List”。存在显式转换(是否缺少转换?)C:\Software\Json\Json\Form1.cs 188 18 Json


您需要对结果进行简单的换行:

List<DataGridViewRow> rows2 =
        new List<DataGridViewRow>
        (from DataGridViewRow r in dgView.Rows
         where r.Cells["status"].Value.ToString().Equals("active")
         select r);

将“?”放在
单元格[“status”]
之后可确保任何空引用都会导致空引用。最后一个
??false
表示,如果有null,我们返回false(即不包括此行)。

或者只使用
ToList
代码编译,但我得到以下错误:对象引用未设置为对象的实例。where子句中可能存在异常。单元格的值可能为空吗?是的,我确实有一行可以为空-这就解决了它。谢谢您可以尝试一下,而不是.FirstOrDefault()try.ToList()?我得到的对象引用没有设置为对象的实例。你能试试这个吗<代码>dataGridView1.Rows.Cast().Where(x=>x.Cells[“状态”].Value.ToString()==“活动”).ToList().ForEach(x=>x.Selected=true)
r.Cells["status"]?.Value.ToString().Equals("active")??false