2013-09-12 2 views
0

Это не большая проблема, но это меня беспокоит. Я знаю, как выбрать в сильно типизированных коллекции (List (Of T), но я не могу найти аккуратный способ сделать это для объекта, который не является СписокLINQ to XML - выберите строго типизированный объект (VB)

Это работает:.

Dim x = From a In response...<artist> _ 
Select New MBArtistInfo With {.MBID = [email protected], .Name = a.<name>.Value, .Gender = a.<gender>.Value} 
Return x(0) 
.

но это раздражает, чтобы сделать это

Я видел C# решение в других местах вдоль линий:

var x = from a In response...<artist> 
select new MBArtistInfo 
{ 
MBID = etc 

, но я не могу преобразовать это в VB

.

Кто-нибудь это сделал?

ответ

0

Просто пропустите имя класса:

Dim x = From a In response...<artist> _ 
     Select New With { .MBID = [email protected], .Name = a.<name>.Value, .Gender = a.<gender>.Value } 

Но это даст вам IEnumerable(Of T), где T является anonymous type. Вы не должны возвращать объекты, как то из ваших методов:

Например, анонимный тип не может быть использован для определения метода подписи, чтобы объявить другую переменную или поле, или в какой-либо тип декларации. В результате анонимные типы не подходят, когда вы должны обмениваться информацией между методами.

Редактировать

Чтобы получить только один элемент из коллекции используют First/FirstOrDefault методы:

Dim x = (From a In response...<artist> _ 
     Select New With { .MBID = [email protected], .Name = a.<name>.Value }).FirstOrDefault(); 
+0

Да, я знаю, что, но я должен иметь строго типизированный объект, чтобы вернуться из мой уровень доступа к данным и я не хочу конвертировать из анонимного типа - если это возможно в C#, то, конечно же, это возможно и в VB –

+0

. Анонимные типы работают одинаково в C#. Вы должны показать более точный пример кода C#, который вы пытаетесь воспроизвести в vb.net. – MarcinJuraszek

+0

Как я уже сказал, меня не интересуют анонимные типы - мне нужен сильный типизированный объект. Код C#, который меня интересует, находится здесь - http://stackoverflow.com/questions/2056087/linq-to-xml-selecting-xml-to-a-strongly-typed-object. Но я не могу преобразовать это в VB. –

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