我的印象是 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 版本(第二行)
我收到后期绑定(bind)不允许错误
x.Item1
当我将鼠标悬停在 上时x Intellisense 说它是对象类型而不是
类型元组。但是对象查询版本相同的操作(第一行)
编译正常。我已经进口了
Imports system.reactive.linq
我错过了另一个引用吗?
最佳答案
问题中的所有代码对我来说都很好。我不明白你的错误。
也许尝试导入 System.Reactive
也是,但除此之外它看起来还不错。
关于.net - 带有 RX 扩展的 LINQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13196159/