ОП уже разобрался, но это только для дальнейшего использования, если кому-то это нужно.
Чего не хватало в OP, так это в том, что ListView хранит свои элементы как объекты в свойстве Items.
If (Listview1.items.containskey("Amount5"))
{}
else
{MessageBox.show("Not Found")}
содержит ключ, как правило, в словарных структурах данных. Однако Items контроллера ListView - это ItemCollection (для словарей вы можете использовать DataGrid)
В вашем случае я бы сделал это, используя Linq.
// Returns the first item that satisfies the condition or null if none does.
ListViewItem found = items.FirstOrDefault(i => i.SubItems[1].Text.Equals("Amount5"));
if(found != null) {
MessageBox.Show(found.SubItems[0].Text.ToString());
}
else {
MessageBox.Show("Not Found!");
}
Вы все еще можете использовать цикл for, чтобы сделать то же самое.
Если я хочу использовать цикл foreach (поскольку Linq нельзя напрямую использовать в ListView.Item)
ListViewItem found = null;
foreach (ListViewItem item in listView1.Items) {
if (item.SubItems[1].Text.Equals("Amount5")) {
// If a match was found break the loop.
found = item;
break;
}
}
if (found != null) {
MessageBox.Show(found.SubItems[0].Text.ToString());
}
else {
MessageBox.Show("Not Found!");
}
Надеюсь, это поможет!