奇怪的Linq错误

3 linq vb.net

我使用Linq将任何对象的数组转换为CSV列表:

String.Join(",", (From item In objectArray Select item.ToString()).ToArray())
Run Code Online (Sandbox Code Playgroud)

这给了我一个奇怪的错误:"范围变量名称不能与'Object'类的成员名称匹配."

我可以通过将字符串包装在VB StrConv方法中来设置为"Nothing":

String.Join(",", (From item In oArray Select StrConv(item.ToString(), VbStrConv.None)).ToArray())
Run Code Online (Sandbox Code Playgroud)

然而,这似乎有点像黑客,我想避免它.

当这个问题发生时,有没有人有任何想法,还有什么更好的方法来绕过它?

Meh*_*ari 10

将您的代码修改为:

String.Join(",", (From item In objectArray Select stringVal = item.ToString()).ToArray())
Run Code Online (Sandbox Code Playgroud)

问题是VB为Select子句返回的变量命名.含蓄,它试图给名称ToStringitem.ToString()将与冲突ToString的方法.为防止这种情况,您应明确指定名称(stringVal在上面的行中).