我正在使用Linq将任何对象的数组转换为CSV列表:
String.Join(",", (From item In objectArray Select item.ToString()).ToArray())
这给了我一个奇怪的错误: “范围变量名称不能与'对象'类成员的名称相匹配。”
我可以通过将字符串包装在VB StrConv方法中来设置为“Nothing”:
String.Join(",", (From item In oArray Select StrConv(item.ToString(), VbStrConv.None)).ToArray())
然而,这似乎有点像黑客,我想避免它。
当出现这种问题时,有没有人有任何想法,还有更好的方法可以解决这个问题吗?
答案 0 :(得分:10)
将您的代码修改为:
String.Join(",", (From item In objectArray Select stringVal = item.ToString()).ToArray())
问题是VB为Select
子句返回的变量命名。隐式地,它会尝试将名称ToString
提供给item.ToString()
,这将与ToString
方法冲突。为防止这种情况发生,您应明确指定名称(上面一行中为stringVal
)。