繁体   English   中英

对ObservableCollection(Reactive Extensions)的值进行排序

[英]Sorting values of ObservableCollection (Reactive Extensions)

在我的应用程序中,我有一个包含超过400个推针的列表。 为了避免UI块,我使用以下终结点和Rx框架。

var observer = localStoreCollection.ToObservable();
observer.Subscribe(StoresOnNext, StoresOnError, StoresOnCompleted);

在OnNext上,我将把这个图钉逐个添加到我的绑定列表中。 随着地图我填充一个具有相同集合的列表。 所以我需要根据最近的位置对此列表进行排序。 所以我的问题是如何在不重新分配列表的情况下对此集合进行排序。 (类似于通过引用调用的东西)。

注意:此外,在OnNext方法内进行距离分配。

在黑暗中拍摄,因为我不知道你在问什么...

编辑...只需用NB再次阅读您的问题。 现在一般来说,我会建议高度反对使用函数式编程为数据对象赋值的概念。 相反,我会建议您创建一个包含PushPin和Distance属性的新对象,或者使用地图将距离信息存储为一种“扩展属性”。

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)功能很昂贵。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM