首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TItem>,你如何对KeyedCollection<TKey进行排序?

TItem>,你如何对KeyedCollection<TKey进行排序?
EN

Stack Overflow用户
提问于 2011-01-12 08:26:07
回答 5查看 3.3K关注 0票数 3

基本上,我有一个KeyedCollection<string, CustomNode>,我希望能够按键对集合进行排序(或者最好使用自定义比较器)。

如果这是不可能的,是否有人可以推荐另一个类,其中的键嵌入在我可以排序的值中?

EN

回答 5

Stack Overflow用户

发布于 2011-01-12 09:00:45

根据进一步的信息(参见上面关于answer的注释),一个要求是在编辑元素的属性后,保持"set“按元素的属性排序。

在这种情况下,您可以查看一下BindableLinq (还有其他类似的框架),并使用其中实现的OrderBy语句。

代码语言:javascript
复制
KeyedCollection<string, CustomNode> collection = /* from whereever */
collection.Items.AsBindable().OrderBy(c => c.PropertyOnCustomNode);

只要您的编辑属性引发一个PropertyChanged事件,它就会立即应用重新排序。如果您希望更改集合,请确保源集合实现了INotifyCollectionChanged。

票数 2
EN

Stack Overflow用户

发布于 2011-05-26 02:24:54

当试图解决类似的问题时,出现了这个问题。如果它仍然相关,我可以使用下面的示例实现排序:

http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/56adc0f9-aa1b-4acf-8546-082bb01058f2/

对我来说很有吸引力。

干杯!

票数 2
EN

Stack Overflow用户

发布于 2011-01-12 08:31:29

KeyCollection<T>继承自实现IEnumerableCollection<T>,因此您应该能够使用IEnumerable.OrderBy()IEnumerable.OrderBy()也有一个重载的allows you to supply a custom comparer

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4664228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档