2009-02-28 2 views
3

Я использую Linq, чтобы преобразовать массив любого объекта в список CSV:Странный Linq Ошибка

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()) 

Однако, это кажется немного рубить, и я хотел бы чтобы избежать этого.

Есть ли у кого-нибудь идеи, когда возникают эти проблемы, и какие-нибудь лучшие способы обойти его?

ответ

10

Измените код:

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

Проблема заключается в VB дает имя переменной возвращаемого Select пункта. Неявно, он пытается указать имя ToString на item.ToString(), которое столкнется с методом ToString. Чтобы этого не произошло, вы должны явно указать имя (stringVal в приведенной выше строке).

+1

Спасибо, это очень полезно. Очень признателен – 2009-02-28 20:13:46

Смежные вопросы