This question already has answers here:
Sort ObservableCollection<string> through C#

(14个回答)


3年前关闭。




我有以下代码来重新排序ObservableCollection<T>集合:
list = new ObservableCollection<SomeType>( list.OrderBy( c=>c.Ordinal ) );

该代码有效,但是我不喜欢包含"new"的事实。有没有一种方法可以更改ObservableCollection<T>集合的内部元素顺序而无需创建新的呢?

谢谢,

最佳答案

鉴于OrderBy还会根据一个数组新闻以匹配您的集合和其他几个对象的大小,您有两种选择:

  • 完全放弃LINQ OrderBy并编写自己的排序,该排序使用Move方法对ObservableCollection进行就地排序。
  • 等待直到当前的实现有问题,然后应用1.

  • 不用担心,更新东西并不那么糟糕。 Linq始终这样做。除非是瓶颈,否则一切都很好。除非有令人信服的证据表明就地排序确实可以加快演出速度,否则这里没有问题。

    关于c# - 订购ObservableCollection <T>而不创建新的ObservableCollection <T>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3973137/

    10-13 06:47