J'ai ce code pour retourner une liste de sources de fonds pour notre organisation. Le problème est que lorsque je parcours le FundSourceList résultant, tout ce qu'il montre est la dernière valeur. Par exemple, si j'ai trois sources de fonds (état, fédéral, athlétique), alors quand j'utilise ce code pour boucler tout ce que je suis listé, c'est athlétique, athlétique, athlétique.Ajout d'éléments à la liste des résultats en double. Quel est le meilleur moyen?
For Each FundSource In FundSources
Debug.Print(FundSource.FundDescription)
Next
Donc je change le code à ceci. J'ai déplacé la création de la variable fs à l'intérieur de la boucle.
Dim results = From result In dsResult.Tables(0) Select result
Dim FundSourceList As New List(Of FundSource)
If results.Count > 0 Then
For Each result In results
Dim fs As New FundSource
fs.FundID = result.Item("strFundID")
fs.FundDescription = result.Item("txtFundIDDescr")
fs.ShortFundDescription = result.Item("txtFundIDDescrShort")
FundSourceList.Add(fs)
Next
End If
Return FundSourceList
Cela fonctionne bien, mais maintenant je crée une nouvelle classe encore et encore. Cela me semble un peu inefficace. Est-ce que je ne peux pas créer la classe en dehors de la boucle et l'utiliser encore et encore? Merci.
+1 pour la question parce que le sujet est informatif, les balises semblent correctes, et tout est assez clair pour qu'un utilisateur de non-VB.NET (c'est moi) obtienne l'essentiel. – Smandoli