Значение типа ‘1-мерный массив «не может быть преобразован в»

#vb.net

#vb.net

Вопрос:

Приведенная ниже ошибка возникает при построении, функции и отображении списка:

 Error 17  Value of type '1-dimensional array of PropGenie_WebService.Building' cannot be converted to 'System.Collections.Generic.List(Of PropGenie_WebService.Building)'.
 

Итак, мой веб-сервис использует списки, в списках вы получаете здания, объекты, список изображений и т.д.. Здание может иметь единицу площади en size, как вы можете видеть из кода. Я пытался сделать его массивами, но все равно получаю эту ошибку. Я застрял на этом весь день, и я действительно застрял..

Мой код в веб-сервисе:

   }, _
         .Features = {New Feature() With { _
             .Name = "Bedrooms", _
             .Count = "2" _
        }}, _
         .Images = {New ListingImage() With { _
             .Caption = "Awesomesauce", _
             .Url = "http://company.com/assets/index_background-84ec0c49973c354e38aea4b19d440e69.jpg" _
        }, New ListingImage() With { _
             .Caption = "Awesomesauce", _
             .Url = "http://company.com/assets/index_background-84ec0c49973c354e38aea4b19d440e69.jpg" _
        }}, _
         .Buildings = {New Building() With { _
             .AreaUnit = "sqm", _
             .AreaValue = 1000 _
        }} _
    }
 

И пример построения:

 Public Property AreaUnit() As String
        Get
            Return m_AreaUnit
        End Get
        Set(value As String)
            m_AreaUnit = value
        End Set
    End Property
    Private m_AreaUnit As String
 

И образец из класса Listings

  Buildings = New List(Of Building)()
        Features = New List(Of Feature)()
        Images = New List(Of ListingImage)()
...
Public Property Buildings() As List(Of Building)
        Get
            Return m_Buildings
        End Get
        Set(value As List(Of Building))
            m_Buildings = value
        End Set
    End Property
 

Пожалуйста, дайте мне знать, если потребуется какой-либо другой код.

Что я пробовал, но все еще ошибки

 }, _
         .Features = New List(Of Feature) from { New Feature(){ With { _     'With Error: Expression Expected
             .Name = "Bedrooms", 
             .Count = "2" _     'Error: Not a member of listings
        }}, _
         .Images = New List(Of ListingImage) From { New ListingImage(){ With { _
             .Caption = "Awesomesauce", _
             .Url = "http://company.com/assets/index_background-84ec0c49973c354e38aea4b19d440e69.jpg" _      'Error: not a member of listings
        }, New ListingImage() With { _
             .Caption = "Awesomesauce", _
             .Url = "http://company.com/assets/index_background-84ec0c49973c354e38aea4b19d440e69.jpg" _
        }}, _
         .Buildings = New List(Of Building) From { New Building(){ With { _
             .AreaUnit = "sqm", _
             .AreaValue = 1000 _
        }} _
    }
 

Комментарии:

1. немного о 1 dimensional array том, что вам все еще не нужны эти завершающие скобки. Buildings = New List(Of Building)() является МАССИВОМ List(of Building) — то же самое с Features и Images . и вам почти никогда не нужен установщик реквизитов для них

2. Я не уверен, что понимаю вас. Извините. Или что я должен отредактировать

3. удалите завершающие скобки : Buildings = New List(Of Building) ; вы почти никогда не хотите, чтобы другой код мог изменять или очищать ваши коллекции, поэтому удалите m_Buildings = value из набора свойств (как минимум — класс Collection лучше предотвратил бы это)

4. Я удалил m_Buildings = value at my GET/SET , но ошибка все еще появляется.

5. @Plutonix Buildings = Новый список (здания)() является массивом списка (здания) Нет, это не

Ответ №1:

 .Buildings =  {New Building() With { _
         .AreaUnit = "sqm", _
         .AreaValue = 1000 _
    }}
 

создает массив зданий, но вам нужен список:

 .Buildings = New List(Of Building) From { New Building() With {...}}
 

Комментарии:

1. Пожалуйста, смотрите оригинальное сообщение, я внес изменения, но получил 3 ошибки

2. У вас есть одна пара { / } to much (между именем класса и with ).