我想列出一个清单,重新排列它并替换原来的。如何进行内联排序?
有没有更好的方法来做到这一点?目前,我重新分配它,感觉很傻...
这里是我的代码:
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