我的印象是 LINQ 查询语言适用于 IObservable,就像它适用于带有 ReactiveExtensions 的 IEnumerable 一样。我有以下代码
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 版本的代码是可以的。但是对于 Foo 的 LINQ 版本(第二行),我得到一个后期绑定不允许错误
x.Item1
当我将鼠标悬停在x上时,Intellisense 说它是对象类型而不是元组类型。但是,相同操作的对象查询版本(第一行)编译正常。我已经进口了
Imports system.reactive.linq
我错过了另一个参考吗?