我没看到下面的LINQ查询我做错了什么。
我正在构建一个通用类型:
public class MyClass<TKey, TValue> : IList<TValue> { ... }
在这个类中,我声明了一个嵌套的私有类型:
private class Pair {
public TKey Key { get; set; }
public TValue Value { get; set; }
public Pair() {
Key = default( TKey );
Value = default( TValue );
}
}
到目前为止一切顺利。现在,在MyClass
我有一个方法,它有一个TKey
个对象的数组。我想使用LINQ来提取TKey
个对象的页面,并创建一个较小的Pair
个对象数组。这是我建立的查询:
TKey[] Keys = ...;
IQueryable<Pair> query = from key in Keys
select new Pair { Key = key, Value = default( TValue ) };
当我编译程序时,我在选择其中的行中出现以下错误:
Cannot implicitly convert type
'System.Collections.Generic.IEnumerable<MyNameSpace.MyClass<TKey,TValue>.Pair>'
to 'System.Linq.IQueryable<VirtualLoadApp.MyClass<TKey,TValue>.Pair>'.
An explicit conversion exists (are you missing a cast?)
我做错了什么?
贝
答案 0 :(得分:1)
试试这个:
var q = from key in Keys
select (new Pair { Key = key, Value = default(TValue) });
IQueryable<Pair> query = q.AsQueryable<Pair>();