2011-10-15 5 views
1

아래의 LINQ 쿼리에서 내가 잘못하고있는 것을 볼 수 없습니다. 지금까지 너무 좋아제네릭이 작동하지 않는 LINQ 쿼리

private class Pair { 
    public TKey Key { get; set; } 
    public TValue Value { get; set; } 

    public Pair() { 
     Key = default(TKey); 
     Value = default(TValue); 
    } 
} 

: 나는 중첩 된 개인 형 선언이 클래스 내에서

public class MyClass<TKey, TValue> : IList<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