LINQ订单错误

本文关键字:错误 单错误 LINQ | 更新日期: 2023-09-27 18:28:38

我有一个自定义集合:

public class CustomCollection: ObservableCollection<MyViewModel>
{
    private String _sPError = String.Empty;
    public String SPError
    {
        get { return _sPError; }
        set { _sPError = value; }
    }
}

现在我有一处房产:

public CustomCollection MyCollecionObject
{
}
//Working Fine    
 MyCollecionObject = GetValueFromCollection();// Return Type is CustomCollection

这很好,但如果我想使用进行排序

//Not Working , Getting the Error
    MyCollecionObject = (GetValueFromCollection()).OrderByDescending(x=>x.StartTime);

我得到以下异常:

无法隐式转换类型"System.Linq.IOrderedEnumerable"到CustomCollection"。"。

如何使用MyViwModel 内的开始日期通过"CustomCollection"订购

LINQ订单错误

CustomCollection是一个ObservableCollection<T>,而OrderByDescending的结果是一个不兼容的IOrderedEnumerable<T>

ObservableCollection<T>有一个构造函数,它允许您传入IEnumerable<T>作为源,这样您就可以执行类似的操作

var orderedCollection = GetValueFromCollection().OrderByDescending(x => x.StartTime);
MyCollectionObject = new CustomCollection(orderedCollection.AsEnumerable());

分配的右侧不是CustomCollection类型。您需要从LINQ语句返回的IOrderedEnumerable构造CustomCollection。