C# ObservableCollection兩個字段排序的狀況

相對於System.Linq的OrderBy及OrderByDescending方法,調用後產生IOrderedEnumberable對象,這個對象爲排序後的返回值,但原對象未發生變化。算法

試想,有這種需求,ObservableCollection調用排序方法後,此對象也跟着排序,怎麼作呢?只能本身寫個擴展方法了,方法內使用的冒泡排序算法,很是簡單,固然使用是更簡單、方便了。ide

注意:將方法寫爲擴展方法更方便:spa

class Student對象

{排序

int id;ip

string name;string

}io

ObservableCollection listDatas=new ObservableCollection<Student>();class

listData .Add(new Student(){id=2,name="xiaoming"}; 擴展

listData.Add(new Student(){id=1,name="李華"};

listData.Add(new Student(){id=3,name="張度"};

listDatas.OrderBy(cu=>cu.id,true);//按ID升序排序

listDatas.OrderBy(cu=>cu.id,false);//按ID降序排序

listDatas.OrderBy(cu=>cu.name,false);//按名稱升序排序 

listDatas..ThenBy(x => x.name)//按名稱升序排序 (只有ID相同的狀況下,按name升序排序)          

相關文章
相關標籤/搜索