2009-12-16 5 views
1

Le même code sur deux sites web différents (sur la même solution), VB.Net (framework 3.5).LINQ Select: différents projets mêmes codes différents résultats

Le code:

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

Une sélection renvoie les noms de propriété avec des lettres majuscules l'autre sans.

alt text http://img8.imageshack.us/img8/4509/linqbug1.jpg

J'ai essayé de changer les noms des propriétés et aucune majuscule du tout.

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

alt text http://img695.imageshack.us/img695/5231/linqbug2.jpg

Merci.

+0

Sortie 1 et sortie 2 sont les mêmes ... –

+1

Est-il possible que l'autre code utilise la capitalisation différente dans le constructeur de l'objet anonyme? – tvanfosson

+1

@Fabian - ce sont les noms de propriétés qui sont différents, pas les données. – tvanfosson

Répondre

1

Dans l'exemple de code que vous avez publié, les noms de propriété dans l'initialiseur d'objet anonyme sont écrits avec une première lettre minuscule. Etes-vous sûr que le code dans l'autre site est vraiment le même? Je soupçonne qu'il utilise les premières lettres majuscules:

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

C'est le même code. – SirMoreno

Questions connexes