加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 21:52:27 所属栏目:百科 来源:网络整理
导读:在我的应用程序中,我有一个包含超过400个推针的列表.为了避免UI块,我使用以下终结点和Rx框架. var observer = localStoreCollection.ToObservable();observer.Subscribe(StoresOnNext,StoresOnError,StoresOnCompleted); 在OnNext上,我将把这个图钉逐个添加
在我的应用程序中,我有一个包含超过400个推针的列表.为了避免UI块,我使用以下终结点和Rx框架.

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

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

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

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读