LINQ Select: разные проекты одинаковые коды разные результаты - PullRequest
1 голос
/ 16 декабря 2009

Один и тот же код на двух разных веб-сайтах (в одном решении), VB.Net (framework 3.5).

Код:

Public Class UserTest
    Public hhh As Integer
    Public fff As String

    Public Sub New(ByVal hh As Integer, ByVal ff As String)
        Me.hhh = hh
        Me.fff = ff
    End Sub

End Class

        Dim lst As List(Of UserTest) = New List(Of UserTest)
        lst.Add(New UserTest(1, "x"))
        lst.Add(New UserTest(2, "y"))

        Dim myData = lst.Select(Function(o) New With {.id = o.fff, .name = o.hhh})

Один выбор возвращает имена свойств с заглавными буквами, другой без.

альтернативный текст http://img8.imageshack.us/img8/4509/linqbug1.jpg

Я пытался изменить имена свойств и вообще не вводить заглавные буквы.

Dim myData = lst.Select(Function(o) New With {.prop1 = o.fff, .prop2 = o.hhh})

альтернативный текст http://img695.imageshack.us/img695/5231/linqbug2.jpg

Спасибо.

1 Ответ

1 голос
/ 16 декабря 2009

В примере кода, который вы разместили, имена свойств в инициализаторе анонимного объекта пишутся со строчной первой буквой. Вы уверены, что код на другом сайте действительно такой же? Я подозреваю, что он использует заглавные первые буквы:

Dim ggg = StaticData.GetLocationsByText(data, CountryId).Select( _
 Function(o) New With { _
 .Id = o.UniqueLocation, _
 .Text = o.DisplayLocation}).ToList()
...