微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

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

解决方法

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

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

var observer = localStoreCollection.ToObservable();
observer.Subscribe(StoresOnNext,StoresOnCompleted);
var closestObservable = observer.Min(Comparer<pushpin>.Create((a,b) => Double.Comparer(distance(a),distance(b)));

或者甚至可能

var observer = localStoreCollection.ToObservable();
observer.Subscribe(StoresOnNext,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)));

如果距离(pushpin)功能很昂贵.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐