2012-11-02 3 views
4

ReactiveExtensions를 사용하여 IEnumerable처럼 LINQ 쿼리 언어가 IObservable에서 작동한다는 인상을 받았습니다. 다음 코드가 있습니다RX 확장이있는 LINQ

Public Sub Foo(source As IObservable(Of Tuple(Of Integer, Integer))) 
    Dim filtered = source.Where(Function(x) x.Item1 > 10).Select(Function(x) x.Item1 + x.Item2) 
    Dim filtered2 = From x In source Where x.Item1 > 10 Select x.Item1 + x.Item2 
End Sub 

Public Sub Bar(source As IEnumerable(Of Tuple(Of Integer, Integer))) 
    Dim filtered = source.Where(Function(x) x.Item1 > 10).Select(Function(x) x.Item1 + x.Item2) 
    Dim filtered2 = From x In source Where x.Item1 > 10 Select x.Item1 + x.Item2 
End Sub 

IEnumerable 버전의 코드는 정상입니다. 내가 X 가리키면 그러나 푸 (두 번째 줄) 의 LINQ 버전 내가

x.Item1 

에 늦은 바인딩 허용되지 않는 오류를 얻을 인텔리는 형식 개체 대신 형 튜플의 말한다. 그러나 동일한 작업 (첫 번째 줄) 의 개체 쿼리 버전은 ok를 컴파일합니다. 가져 왔어요

Imports system.reactive.linq 

다른 참조가 누락 되었습니까?

답변

1

문제의 코드는 모두 정상적으로 작동합니다. 나는 네 잘못을 알지 못해.

System.Reactive도 가져 오기를 시도해보십시오.

+0

나는 그것을 시도했다고 생각합니다. – bradgonesurfing