为什么会出现此警告?
BindingList<ClassName> lst = List.Select(obj => obj.Number == "NN").ToList<ClassName>();
............................................... ..
列表:
BindingList<ClassName> List = new BindingList<ClassName>();
ERRO:
System.Collections.Generic.IEnumerable'不包含'ToList'的定义,并且最好的扩展方法重载'System.Linq.Enumerable.ToList(System.Collections.Generic.IEnumerable)'有一些无效的参数
答案 0 :(得分:5)
您的意思是Where
而不是Select
吗?
List.Select(obj => obj.Number == "NN")
是一个投影,对于列表中的每个项目,它返回字符串"NN"
- 您现在有一个n次序列 - "NN"
;然后,您尝试将其强制转换为ClassName
列表。然后进一步尝试将List<ClassName>
转换为BindingList<ClassName>
,但除了IList<T>
我希望你的意思是:
BindingList<ClassName> lst = new BindingList<ClassName>(
List.Where(obj => obj.Number == "NN").ToList());
答案 1 :(得分:1)
ToList<T>()
LINQ方法将可枚举转换为List<T>
,而不转换为BindingList<T>