C# 我是否可以/如何在第三方对象上实现IEnumerable以进行排序…仅使用LINQ?

C# 我是否可以/如何在第三方对象上实现IEnumerable以进行排序…仅使用LINQ?,c#,linq-to-objects,C#,Linq To Objects,我的最后两个问题已经被否决了,所以如果这是一个愚蠢的问题,浪费了你的时间,我提前向你道歉 我想对一个名为CreateDate的属性上的集合进行排序,所以我想我会做如下操作: MyList.Sort(x => x.CreateDate) 但是,MyList.Sort()不可用,因为MyList是一个不实现IEnumerable的Microsoft数据收集对象 元数据中的Microsoft数据收集如下所示: public class DataCollection<T> : Col

我的最后两个问题已经被否决了,所以如果这是一个愚蠢的问题,浪费了你的时间,我提前向你道歉

我想对一个名为CreateDate的属性上的集合进行排序,所以我想我会做如下操作:

MyList.Sort(x => x.CreateDate)
但是,MyList.Sort()不可用,因为MyList是一个不实现IEnumerable的Microsoft数据收集对象

元数据中的Microsoft数据收集如下所示:

public class DataCollection<T> : Collection<T>
{

    public void AddRange(IEnumerable<T> items);
    public void AddRange(params T[] items);
    public T[] ToArray();
}
或者强制转换到一个列表,但是我必须创建一个比较器,我不知道如何在不迭代整个过程并重建数据集合的情况下将其取回

List<Entity> x = self.Entities.ToList();
x.Sort(y => y.Attributes["CreateDate"], comparer)
foreach(var x in x)
{
  //iterate and rebuild the DataCollection
}
List x=self.Entities.ToList();
x、 排序(y=>y.Attributes[“CreateDate”],比较器)
foreach(变量x在x中)
{
//迭代并重新生成数据集合
}
如有任何意见/关键评价,将不胜感激


谢谢

我不确定这里是否有足够的信息来准确诊断问题,但我会试一试。我看到两个潜在问题:

  • 您缺少对
    System.Linq
    System.Data.DataSetExtensions
    的引用
  • 您需要使用
    MyList.cast().OrderBy(x=>x.CreateDate)

  • 另外,请注意使用
    .OrderBy()
    而不是
    。Sort()

    集合
    确实实现了
    IEnumerable
    。这两种方法似乎都是有效的解决方案;选择哪一个取决于如何使用结果。如果只需要迭代一次,我会使用LINQ orderby解决方案。如果您想保留结果并多次迭代,我会使用ToList/Sort解决方案。@Lee…我的问题是否措辞不当?集合不实现IEnumerable…我100%同意,因此我的问题是@user1278561,它实现了。你为什么不这么认为?哦!!!我的眼睛在欺骗我。它确实实现了@Lee所说的……好的,您好。我需要做一些学习。
    List<Entity> x = self.Entities.ToList();
    x.Sort(y => y.Attributes["CreateDate"], comparer)
    foreach(var x in x)
    {
      //iterate and rebuild the DataCollection
    }