, поэтому я новичок в LINQ и просто сделал тестовый запрос из файла csv, который отображает его результаты в сетке данных. Я использовал простые инструкции Where, такие как Where sys = «System 1», без проблем. Когда дело дошло до нескольких тестов, где я не знал, сколько систем я бы проверял, я застрял.VB: Фильтровать запрос linq со списком
Как настроить, где следует проверять список?
Where listSystems.Contains(sys)
Это то, что я думал, должно работать, но оно не дает никаких результатов.
Полный код
Dim lstSystem As New List(Of String)
lstSystem.Items.Add("System 1")
lstSystem.Items.Add("System 4")
lstSystem.Items.Add("System 5")
lstSystem.Items.Add("System 7")
Dim Test As String() = System.IO.File.ReadAllLines("test.csv")
Dim query = From item In Test
Let data = item.Split(","c)
Let name = data(0)
Let sys = data(1)
Let price = data(2)
Where lstSystem.Contains(sys)
Order By name, sys, price Ascending
Select name, sys, price
dgvResults.DataSource = query.ToList
dgvResults.CurrentCell = Nothing
dgvResults.Columns("name").HeaderText = "Name"
dgvResults.Columns("sys").HeaderText = "System"
dgvResults.Columns("price").HeaderText = "Price"
Спасибо! Где lstSystem.Any (функция (x) sys.Contains (x)) сделал это! – user2384199