奇怪的Linq错误

3

我正在使用Linq将任何类型的数组转换成CSV列表:

String.Join(",", (From item In objectArray Select item.ToString()).ToArray())

我遇到了一个奇怪的错误:“范围变量名不能与‘Object’类的成员名称匹配。”

我可以通过使用VB StrConv方法将字符串包装起来,并将设置设置为“Nothing”来解决它:

String.Join(",", (From item In oArray Select StrConv(item.ToString(), VbStrConv.None)).ToArray())

然而,这似乎有点像一个hack,我希望避免使用它。

是否有人在这种情况下有任何想法,并且有更好的方法来解决它?

1个回答

11

将你的代码进行修改:

String.Join(",", (From item In objectArray Select stringVal = item.ToString()).ToArray())
问题在于VB会给通过Select子句返回的变量命名。隐式地,它试图为item.ToString()命名为ToString,这将与ToString方法发生冲突。为了避免这种情况,请明确指定一个名称(在上面一行中为stringVal)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接