Basic LINQ expression for an ItemCollection

前端 未结 2 1738
盖世英雄少女心
盖世英雄少女心 2021-02-05 00:20

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         


        
相关标签:
2条回答
  • 2021-02-05 00:34

    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.

    0 讨论(0)
  • 2021-02-05 00:42

    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;
    
    0 讨论(0)
提交回复
热议问题