我有自定义系列:
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'进行排序答案 0 :(得分:2)
CustomCollection
是ObservableCollection<T>
,OrderByDescending
的结果是IOrderedEnumerable<T>
,不兼容。
ObservableCollection<T>
有constructor,允许您传入IEnumerable<T>
作为来源,以便您可以执行类似
var orderedCollection = GetValueFromCollection().OrderByDescending(x => x.StartTime);
MyCollectionObject = new CustomCollection(orderedCollection.AsEnumerable());
答案 1 :(得分:1)
作业的右侧不是CustomCollection类型。您需要从LINQ语句返回的IOrderedEnumerable构造一个CustomCollection。