Tôi muốn có thể chạy truy vấn LINQ trên BindingList (T) trả về chỉ số trong đó thành viên đối tượng danh sách bằng với một giá trị cụ thể.Nhận chỉ mục giá trị khớp trong Danh sách bằng LINQ
nói rằng tôi có một danh sách các đối tượng đơn giản của phụ tùng lớp:
Public Class widget
Public Property foo As Integer
Public Property bar As String
End Class
Dim widgetList As BindingList(Of widget)
Tôi muốn để có thể truy vấn danh sách một số điều như sau: chỉ số
Dim test As Integer = 5
Dim index = (From i In widgetList
Where i.foo = test
Select i.index).First
như vậy mà chứa chỉ mục của listItem đầu tiên trong đó widgetList.Item (index) .foo = 5. Cách tốt nhất để làm điều này là gì? (Hoặc nên tôi thậm chí còn được sử dụng LINQ)
Tôi đã thấy một vài phương thức trong C# để làm điều này nhưng Im không đủ au fait với C# để hiểu làm thế nào để sử dụng chúng trong VB
Theo như LINQ được xem xét, cú pháp C# và vb hầu như giống nhau. Về câu hỏi của bạn: trong tiêu đề bạn đang hỏi về giá trị khớp (có nghĩa là bạn đang mong đợi nhiều hơn một giá trị phù hợp) nhưng trong mã bạn đang sử dụng. Đầu tiên, điều đó có nghĩa là bạn chỉ đang lấy mục đầu tiên từ các kết quả đã chọn. –
Vì vậy, tôi đã làm - chỉnh sửa để loại bỏ số nhiều. Cảm ơn – Toby