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)功能很昂贵. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |