【发布时间】:2016-02-07 22:28:01
【问题描述】:
我正在尝试使用 dynamic 参数调用 IEnumerable.Contains(),但出现错误
'IEnumerable' 不包含'Contains' 的定义,并且最佳扩展方法重载'Queryable.Contains(IQueryable, TSource)' 有一些无效参数
我注意到我可以将参数转换为正确的类型,或者使用基础集合类型来解决问题。但我不确定为什么我不能直接传入参数。
dynamic d = "test";
var s = new HashSet<string>();
IEnumerable<string> ie = s;
s.Contains(d); // Works
ie.Contains(d); // Does not work
ie.Contains((string)d); // Works
【问题讨论】:
-
@JonSkeet 如果我删除它,它会在我的 vs2012 no biggie 中引发错误
-
我可能有错字@JonSkeet 我将删除评论以消除任何混淆
-
@JonSkeet 我已经删除了..再次感谢。
标签: c# dynamic ienumerable contains