基本上我有一个 KeyedCollection<string, CustomNode>
,并且我希望能够按键(或者最好使用自定义比较器)对集合进行排序。
如果这不可能,有人可以推荐另一个类,其中键嵌入在我可以排序的值中吗?
最佳答案
根据更多信息(参见上面关于 answer 的评论),要求在编辑属性后保持“集合”按元素的属性排序。
在这种情况下,您可以查看 BindableLinq (也有其他类似的框架)并使用其中实现的 OrderBy 语句。
KeyedCollection<string, CustomNode> collection = /* from whereever */
collection.Items.AsBindable().OrderBy(c => c.PropertyOnCustomNode);
只要您编辑的属性引发 PropertyChanged 事件,它就会立即应用重新排序。如果您希望更改您的集合,请确保源集合实现 INotifyCollectionChanged。
关于c# - 如何对 KeyedCollection<TKey, TItem> 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4664228/