如何检查来自IEnumerable <T>的T是否是IInterface?

It'*_*ie. 4 c# generics types interface typechecking

基本上,这相当于什么,但100%保证工作?

 object x = new List<MyTypeWhichImplementsIInterface>();
 bool shouldBeTrue = x is IEnumerable<IInterface>;
Run Code Online (Sandbox Code Playgroud)

从一些粗略的测试看起来似乎有效,但我不确定.

dri*_*iis 6

这适用于C#4,但不适用于以前的版本.

该is语句利用了泛型类型参数的协方差,这是C#4中添加的一个特性.在C#4之前,该语句将为false.