Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按nullable类属性排序ObservableCollection,然后按_C#_Sorting_Ienumerable_Observablecollection - Fatal编程技术网

C# 按nullable类属性排序ObservableCollection,然后按

C# 按nullable类属性排序ObservableCollection,然后按,c#,sorting,ienumerable,observablecollection,C#,Sorting,Ienumerable,Observablecollection,我正在尝试对包含以下类的ObservabkeCollection对象进行排序 public Favourites(string title=null, string uri=null, string folder=null, bool delete=false) { this.pageTitle = title; this.pageURI = uri; this.folder = folder; this.deleteEnabled = delete; }

我正在尝试对包含以下类的ObservabkeCollection对象进行排序

 public Favourites(string title=null, string uri=null, string folder=null, bool delete=false)
 {
    this.pageTitle = title;
    this.pageURI = uri;
    this.folder = folder;
    this.deleteEnabled = delete;
  }
我尝试按文件夹排序,然后按uri排序。虽然uri和title可以为null,但在我的例子中,我总是为它们分配一些非null的内容。但是,文件夹属性可以为空

我要排序的代码

    private void sortCollectionFolderFirst()
    {
        IEnumerable<Favourites> sort;
        ObservableCollection<Favourites> tempSortedFavourites = new ObservableCollection<Favourites>();
        tempFavs.Clear();
        tempFavs = settings.FavouritesSetting;

        sort = tempFavs.OrderByDescending(item => item.Folder).ThenBy(item => item.PageURI);

        foreach (var item in sort)
        {
            tempSortedFavourites.Add(item);
        }

        settings.FavouritesSetting = tempSortedFavourites;            
    }
但是当遇到具有以下内容的项时,
sort
返回空

this.pageTitle = sometitle;
this.pageURI = someuri;
this.folder = somefoldername;
this.deleteEnabled = false or true;

这是为什么?

它可能是一种类型,但您的实例成员的大小写与您在Linq查询中使用的大小写不同。例如,Folder和Folder。我正在通过
Folder
访问属性,上面没有显示该属性公共字符串文件夹{get{return Folder;}set{Folder=value;PropChanged(“Folder”);}}对于给定的示例,排序应该可以正常工作。在进行排序之前,您确定在第二个示例中填充了tempFavs吗?啊,您是对的,在第二个示例中,我在某个地方犯了一个错误,指定了
设置。收藏夹设置为空值,因此
tempFavs
没有填充。
this.pageTitle = sometitle;
this.pageURI = someuri;
this.folder = somefoldername;
this.deleteEnabled = false or true;