I have an ItemCollection that I\'d like to query using LINQ. I tried the following (contrived) example:
var lItem =
from item in lListBox.Items
where Str
It's because ItemCollection only implements IEnumerable
, not IEnumerable<T>
.
You need to effectively call Cast<T>()
which is what happens if you specify the type of the range variable explicitly:
var lItem = from object item in lListBox.Items
where String.Compare(item.ToString(), "abc") == 0
select item;
In dot notation, this is:
var lItem = lListBox.Items
.Cast<object>()
.Where(item => String.Compare(item.ToString(), "abc") == 0));
If course, if you have a better idea of what's in the collection, you could specify a more restrictive type than object
.
You need to specify the type of "item"
var lItem =
from object item in lListBox.Items
where String.Compare(item.ToString(), "abc") == true
select item;