Это потому, что ItemCollection реализует только IEnumerable
, а не IEnumerable<T>
.
Вам необходимо эффективно вызвать Cast<T>()
, что происходит, если вы явно указываете тип переменной диапазона:
var lItem = from object item in lListBox.Items
where String.Compare(item.ToString(), "abc") == 0
select item;
В точечной записи это:
var lItem = lListBox.Items
.Cast<object>()
.Where(item => String.Compare(item.ToString(), "abc") == 0));
Если, конечно, если вы лучше представляете, что находится в коллекции, вы можете указать более ограничительный тип, чем object
.