我试图使用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),它可以正常工作。顺便说一句,我正在使用严格。
有人可以帮忙吗?
尝试给它取一个别名(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查询开始出现问题,是时候将其重写为循环了。就您而言,它可以解决问题。