<分区>
我有以下代码来重新订购 ObservableCollection<T>
收藏:
list = new ObservableCollection<SomeType>( list.OrderBy( c=>c.Ordinal ) );
此代码有效,但我不喜欢涉及"new"这一事实。有没有办法可以更改 ObservableCollection<T>
的内部元素顺序?收藏而不创建新的?
谢谢,
标签 c#
<分区>
我有以下代码来重新订购 ObservableCollection<T>
收藏:
list = new ObservableCollection<SomeType>( list.OrderBy( c=>c.Ordinal ) );
此代码有效,但我不喜欢涉及"new"这一事实。有没有办法可以更改 ObservableCollection<T>
的内部元素顺序?收藏而不创建新的?
谢谢,
最佳答案
为 Observable 集合实现自定义排序扩展方法
public static class ObservableCollection
{
public static void Sort<TSource, TKey>(this ObservableCollection<TSource> source, Func<TSource, TKey> keySelector)
{
List<TSource> sortedList = source.OrderBy(keySelector).ToList();
source.Clear();
foreach (var sortedItem in sortedList)
{
source.Add(sortedItem);
}
}
}
以上回答灵感来自Jaider先生对此question的回复
关于c# - 订购一个 ObservableCollection<T> 而不创建一个新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3973137/