使用Linq在BindingList <T>中搜索

mah*_*_85 1 c# linq generic-list

这是警告的原因?

BindingList<ClassName> lst = List.Select(obj => obj.Number == "NN").ToList<ClassName>();
Run Code Online (Sandbox Code Playgroud)

.................................................

列表:

BindingList<ClassName> List = new BindingList<ClassName>();
Run Code Online (Sandbox Code Playgroud)

埃罗:

System.Collections.Generic.IEnumerable'不包含'ToList'的定义和最佳扩展方法重载'System.Linq.Enumerable.ToList(System.Collections.Generic.IEnumerable)'有一些无效的参数

Mar*_*ell 5

你是说Where而不是Select?

List.Select(obj => obj.Number == "NN")
Run Code Online (Sandbox Code Playgroud)

是一个投影,对于列表中的每个项目,它返回字符串"NN"- 您现在有一个n次序列"NN"; 然后你试着把它强制成一个列表ClassName.然后你进一步尝试投射List<ClassName>到BindingList<ClassName>,但除了它们之间没有任何关系IList<T>

我希望你的意思是:

BindingList<ClassName> lst = new BindingList<ClassName>(
        List.Where(obj => obj.Number == "NN").ToList());
Run Code Online (Sandbox Code Playgroud)