Linq,c#为集合中的每个项执行方法(动态)
我得到了一个返回bool的方法-methodToExecute() 还有一个类似这样的集合Linq,c#为集合中的每个项执行方法(动态),c#,linq,dynamic,C#,Linq,Dynamic,我得到了一个返回bool的方法-methodToExecute() 还有一个类似这样的集合CollectionVM.SelectedItems.Cast() 我需要对集合中的每一项执行methodToExecute(),并查看是否至少有一项为false 我试过这样的东西 CollectionVM.SelectedItems.Cast<dynamic>().Any(l => (methodToExecute(l.userId) == false)) CollectionVM.S
CollectionVM.SelectedItems.Cast()
我需要对集合中的每一项执行methodToExecute(),并查看是否至少有一项为false
我试过这样的东西
CollectionVM.SelectedItems.Cast<dynamic>().Any(l => (methodToExecute(l.userId) == false))
CollectionVM.SelectedItems.Cast().Any(l=>(methodToExecute(l.userId)==false))
但在运行时我犯了一个错误
无法将lambda表达式用作参数
调度操作
有人能给出一个解决方法吗?因为你需要一个有
用户ID的类,而不是使用动态的,使用包含这样属性的接口。不要使用动态的来处理你真正知道的事情。话虽如此,如果您知道所有实例都有一个公共成员,请为它们提取一个接口,并将每个元素转换为该接口,而不是转换为动态
。事实上,我会尽量避免使用dynamic
。事实上,这将使您的代码更易于阅读和维护,而且最重要的是,编译器可以帮助您避免讨厌的错误。无论如何,为什么您的VM是动态的?您不知道视图中显示的对象类型吗?这似乎是这里的实际问题。