我想列出一個清單,重新排列它並替換原來的。如何進行內聯排序?
有沒有更好的方法來做到這一點?目前,我重新分配它,感覺很傻...
這裏是我的代碼:
var viewModel = new ViewModel();
viewModel.Children = viewModel.Children.OrderBy(x => x.Name).ToList();
我想列出一個清單,重新排列它並替換原來的。如何進行內聯排序?
有沒有更好的方法來做到這一點?目前,我重新分配它,感覺很傻...
這裏是我的代碼:
var viewModel = new ViewModel();
viewModel.Children = viewModel.Children.OrderBy(x => x.Name).ToList();
看來你正在尋找List<T>.Sort
方法。
viewModel.Children.Sort((a, b) => string.Compare(a.Name, b.Name));
嘗試用List<T>.Sort
方法代替。
用指定
System.Comparison<T>
在整個List<T>
的元素。
viewModel.Children.Sort((a, b) => String.Compare(a.Name, b.Name))
試試這個使用lambda expressions
:
viewModel.Children.Sort((a, b) => String.Compare(a.Name, b.Name))
對於IList的,它不會工作:
viewModel.Children = viewModel.Children.OrderBy(x => x.Name).ToList();
'(a)=> String.Compare(a.Name)'< - 不知道它甚至會編譯。 – leppie 2013-03-19 08:29:33
哎呀..現在,我更新了.. – 2013-03-19 08:30:36
我想這不會爲一個IList工作? – shenku 2013-03-19 08:24:03
不,它不會工作,但你總是可以使用'.ToList()'。 – 2013-03-19 08:25:14
yea謝謝,很害怕那個。 – shenku 2013-03-19 08:26:31