2011-10-15 54 views
1

我不明白我在做什么错误的LINQ查询如下。涉及仿制药不能正常工作的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

是什么错误消息说? –

+0

错误消息的文本在问题的末尾。 –

回答

1

试试这个:

  var q = from key in Keys 
        select (new Pair { Key = key, Value = default(TValue) }); 
      IQueryable<Pair> query = q.AsQueryable<Pair>(); 
+0

谢谢!该编译没有任何错误。 –

+0

不客气:) – GianT971