ListViewItem v = (ListViewItem) (from ListViewItem lvi in MyList where lvi.Text == e.Text select lvi).FirstOrDefault();>>>
>int index = (int)(from ListViewItem lvi in MyList where lvi.Text == e.Text select lvi.Index).FirstOrDefault(); >>>(will be 0 if not found)
int index = MyList.Where(i => i.Text == e.Text).Select(i => i.Index).DefaultIfEmpty(-999).FirstOrDefault();but at that point it's not much of an improvement on the original