Vorrei essere in grado di eseguire una query LINQ su un BindingList (Of T) che restituisce gli indici in cui un membro dell'oggetto elenco è uguale a un valore particolare.Ottenere l'indice del valore corrispondente in Elenco utilizzando LINQ
dire che ho una lista di semplici oggetti di widget di classe:
Public Class widget
Public Property foo As Integer
Public Property bar As String
End Class
Dim widgetList As BindingList(Of widget)
mi piacerebbe essere in grado di interrogare l'elenco qualche cosa come il qui sotto:
Dim test As Integer = 5
Dim index = (From i In widgetList
Where i.foo = test
Select i.index).First
Tale quell'indice contiene l'indice del primo listItem dove widgetList.Item (index) .foo = 5. Qual è il modo migliore per farlo? (O dovrei anche essere utilizzando LINQ)
Ho visto diversi metodi C# per fare questo, ma io non sono sufficientemente au fait con C# per capire come usarli in VB
Per quanto riguarda il linq, la sintassi C# e vb sono quasi sempre le stesse. Riguardo alla tua domanda: nel titolo ti stai chiedendo di abbinare valueS (significa che ti stai aspettando più di una corrispondenza) ma nel codice che stai utilizzando. Primo, il che significa che stai prendendo solo il primo oggetto dai risultati selezionati. –
Così ho fatto - modificato per rimuovere plurale. Grazie – Toby