我有以下查询:
var result = context.BEntries
.Where(x => x.a == "a")
.Select(x => new MyClass()
{
a = x.a
}).ToList();
Run Code Online (Sandbox Code Playgroud)
我得到了类型的结果List<MyClass>.但是,我必须回来IEnumerable<IMyclass>.如何将其转换为通用定义?
你不需要.
IEnumerable<T>是协变的; List<MyClass>可以隐式转换为IEnumerable<IMyClass>.
.Net 3.5不使用协方差,因此您需要自己投射.
您可以调用.Cast<IMyClass>()或转换select表达式,IMyClass以便查询IMyClass首先返回.