范围变量名称不能与“ Object”类的成员名称匹配。使用Linq查询DataGridView时

Wol*_*Reh 3 linq vb.net

我试图使用LINQ查询DataGridViewRowsCollection对象,所以我不需要for循环。我想让第一个单元格是字符串,然后将其放在通用列表中。

根据我的知识和研究,查询应为以下内容:

Dim Result As List(Of String) = (From row In gridMappingClasses.Rows.Cast(Of DataGridViewRow)()
                                 Select row.Cells(0).Value.ToString).ToList()
Run Code Online (Sandbox Code Playgroud)

但是它失败并出现以下错误:范围变量名称不能与“ Object”类的成员名称匹配。

但是,如果我删除ToString方法调用并将Result更改为List(of object),它可以正常工作。顺便说一句,我正在使用严格。

有人可以帮忙吗?

Neo*_*isk 6

尝试给它取一个别名(ToString已经是Object的成员,不能再有一个):

(From row In gridMappingClasses.Rows.Cast(Of DataGridViewRow)()
 Select v = row.Cells(0).Value.ToString).toList
Run Code Online (Sandbox Code Playgroud)

但是拥有for循环并没有错。通常,对于不引起任何调试麻烦的简单查询,通常应使用LINQ。如果LINQ查询开始出现问题,是时候将其重写为循环了。就您而言,它可以解决问题。