gpt4 book ai didi

c# - 我可以/如何在第三方对象上实现 IEnumerable 来排序...只使用 LINQ?

转载 作者:行者123 更新时间:2023-11-30 16:59:15 25 4
gpt4 key购买 nike

我的最后两个问题得到了反对票,所以如果这是一个愚蠢的问题并且浪费你的时间,我提前道歉。

我想根据名为 CreateDate 的属性对集合进行排序,所以我想我会做类似的事情:

MyList.Sort(x => x.CreateDate)

但是 MyList.Sort() 不可用,因为 MyList 是一个未实现 IEnumerable 的 Microsoft DataCollection 对象。

来自元数据的 Microsoft DataCollection 是这样的:

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

public void AddRange(IEnumerable<T> items);
public void AddRange(params T[] items);
public T[] ToArray();
}

所以我能想到的只有两个选择:

按照这些思路使用 Linq:

var query = from xyz in self.Entities
orderby xyz.Attributes["CreateDate"]
select xyz;

或转换为一个列表,但我必须创建一个比较器,我不确定如何在不遍历整个事物和重建 DataCollection 的情况下取回它。

List<Entity> x = self.Entities.ToList();
x.Sort(y => y.Attributes["CreateDate"], comparer)
foreach(var x in x)
{
//iterate and rebuild the DataCollection
}

任何输入/关键评估将不胜感激

谢谢

最佳答案

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

  1. 您缺少对 System.Linq 的引用或 System.Data.DataSetExtensions .
  2. 你需要转换 DataCollection到正确的类型,使用 MyList.Cast<Entity>().OrderBy(x => x.CreateDate)

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

关于c# - 我可以/如何在第三方对象上实现 IEnumerable 来排序...只使用 LINQ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23893075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com