Преобразование C # в список VB.net ‹T› имеет ошибку

Я пытаюсь преобразовать код C # в VB, но получаю сообщение об ошибке. Каким будет правильный синтаксис VB?

C#

return new List<string>   {"First Name", "Last Name", "First & Last Name", "None"};

VB

Return New List(Of String)() From {"First Name", "Last Name", "First & Last Name", "None"}

И как насчет того, чтобы я тоже это преобразовал? Уменьшить список как новый список (страны) () из {Новая страна () с помощью {Key .Name = "Select Country", Key .Code = "0"}}

Спасибо


person user453120    schedule 20.09.2010    source источник
comment
Это компилируется, если вы поместите его в функцию ... () As List (Of String)   -  person Albin Sunnanbo    schedule 20.09.2010


Ответы (1)


Инициализация коллекции поддерживается в VB10 (часть Visual Studio 2010), но не в VB9 (VS 2008). Опубликованный вами синтаксис верен для VB10.

Dim foos As New List(Of String)() From {"Foo", "Bar"}

В VB9 вам просто нужно будет справиться с этим старомодным способом

Dim foos as New List(of String)()
foos.Add("Foo")
foos.Add("Bar")

VB9 поддерживает инициализацию массива

Dim foos As String() = New String() {"Foo", "Bar"}

Однако этот массив не так функциональн, как List(of T), но если вам не нужно добавлять или удалять элементы, вы, безусловно, можете использовать массив вместо списка.

person Anthony Pegram    schedule 20.09.2010
comment
Чтобы иметь однострочник в vb9, вы можете написать: Return (New String () {First Name, Last Name, First & Last Name, None}). ToList () - person Matthieu; 21.09.2010
comment
Как насчет этого дела ??? Уменьшить список как новый список (страны) () из {Новая страна () с помощью {Key .Name = Select Country, Key .Code = 0}} - person user453120; 21.09.2010