2009-02-28 9 views
3

私は、CSVリストに任意のオブジェクトの配列を変換するためのLINQを使用しています:奇妙なLINQのエラー

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

これは私に奇妙なエラーを与えている:「範囲変数名は、メンバーの名前と一致することはできません'Object'クラスの "

私は「何もない」の設定で、VBのStrConvメソッドで文字列をラップすることによって、それラウンドを取得することができます。

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

しかし、これはハックのビットのように思えると私は希望それを避けるために。

この問題が発生したときに誰かがアイデアを持っていますか?問題は、VBがSelect句によって返された変数に名前を与えている

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

答えて

10

はにあなたのコードを変更します。暗黙のうちに、ToStringをメソッドと衝突させるように、ToStringitem.ToString()にしようとします。これを防ぐには、明示的に名前(stringVal)を指定する必要があります。

+1

ありがとう、それは非常に役に立ちます。とても有難い –