c# - 订购一个 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/

相关文章:

c# - 存储库模式是如何真正完成的?

c# - 如何使用 HTML Agility Pack 将输入标签添加到表单?

c# - 如何为 C# 中的对象实例提供 this 关键字?

c# - Entity Framework - 如何查询多个表并选择要显示的列

c# - 如何在 ASP.NET Web Api 中配置 gzip 压缩响应?

c# - 检查机器上的第三方防火墙

c# - 小型 3D 应用程序的最佳框架

c# - 返回非结构化 BsonDocument 作为 ApiController 中的类属性

c# - 适用于 C# 和 Windows 窗体应用程序开发人员的 .Net framework 4.0 有哪些新功能?

c# - HttpRequest 索引器的搜索顺序