C#无法将lambda表达式转换为类型';动态';因为它不是委托类型
假设我有一个C#无法将lambda表达式转换为类型';动态';因为它不是委托类型,c#,list,dynamic,C#,List,Dynamic,假设我有一个 List<dynamic> myList = new List<dynamic>(); 无法将lambda表达式转换为类型“dynamic”,因为它不是委托类型 我可以通过迭代列表来完成: 但是为什么我不能使用包含?因为约束声明为: public bool Contains( T item ) 您应该使用Any(您的lambda)Contains()而不是委托,我想您需要Any(): 没有需要lambda的重载。哦,天哪,我完全忘记了。在c#中,
List<dynamic> myList = new List<dynamic>();
无法将lambda表达式转换为类型“dynamic”,因为它不是委托类型
我可以通过迭代列表来完成:
但是为什么我不能使用
包含
?因为约束
声明为:
public bool Contains(
T item
)
您应该使用Any(您的lambda)
Contains()
而不是委托,我想您需要Any()
:
没有需要lambda的重载。哦,天哪,我完全忘记了。在c#中,这是一种非常有趣的混合方式。我有一个开源框架,它可以获取一系列接口,并生成一个真正轻量级的代理,该代理继承这些接口,基本上封装了一组转发给DynamicObject的callsite绑定。你可能会对它感兴趣。你的框架非常有趣,jbtule。我会深入研究一会儿。
if (myList.Contains((item)=>item.GetType().Equals(indexes[0].GetType())){
public bool Contains(
T item
)
if (myList.Any( item => item.GetType().Equals(indexes[0].GetType()))
{