Этот код должен работать для вас:
Dim lvw As New ListView()
lvw.Items.AddRange({New ListViewItem("Item 1"),
New ListViewItem("Item 2"),
New ListViewItem("Item 3")})
lvw.Items.Remove((From i In lvw.Items.OfType(Of ListViewItem)()
Where i.Text = "Item 1").First)
Он использует LINQ для поиска элемента с текстом «Item 1», а затем удаляет его из ListViewItemCollection ListView (свойство Items
).
Небольшое предостережение здесь заключается в том, что должен существовать Item с текстом «Item 1», иначе метод расширения First()
не удастся.Если вы не уверены, вы можете использовать FirstOrDefault()
или предварительно проверить, содержит ли оператор LINQ значение перед тем, как приступить к удалению элемента.
Редактировать
Это обновленный код, соответствующий вашему обновленномутребование:
For Each lvi in lstNew.Items
Dim masterItem = From i in lstMaster.Items.OfType(Of ListViewItem)()
Where i.Text = lvi.Text
If masterItem.Any Then
lstMaster.Items.Remove(masterItem.First)
End If
Next