在这里拍摄黑暗,因为我不知道你在问什么......
编辑...只需用 NB 再次阅读您的问题。现在一般来说,我强烈建议不要使用函数式编程来为数据对象赋值。相反,我建议您创建一个包含 PushPin 和距离属性的新对象,或者使用地图将距离信息存储为一种“扩展属性”。
var observer = localStoreCollection.ToObservable();
observer.Subscribe(StoresOnNext, StoresOnError, StoresOnCompleted);
var closestObservable = observer.Min(Comparer<PushPin>.Create((a, b) => Double.Comparer(Distance(a), Distance(b)));
甚至可能
var observer = localStoreCollection.ToObservable();
observer.Subscribe(StoresOnNext, StoresOnError, StoresOnCompleted);
var distanceMap = new ConcurrentDictionary<PushPin, double>();
var closestObservable = observer.Min(Comparer<PushPin>.Create((a, b) => Double.Comparer(distanceMap.GetOrAdd(a, Distance), distanceMap.GetOrAdd(b, Distance)));
如果Distance(PushPin)
功能很昂贵。