日期:2014-05-20  浏览次数:20859 次

linq 排序问题,求解决!
我有个排序字段orderID 他有1-5个值 ,我想先按3和4再按1 2 5 排序.我想要的结果是这样的 

3  张三

4 李四


1 王五

2 赵六

5 张八


3,4必须在最前面..后面怎么排序无所谓.

 用linq 该怎么实现,求助
------最佳解决方案--------------------
集合.OrderBy(x => x.OrderID == 3 ? -1 : x.OrderID == 4 ? 0 : x.OrderID);
------其他解决方案--------------------
var source=dc.Class1.OrderBy(t=>t.orderID>=3&&t.orderID<=4?t.orderID-100:t.orderID );
------其他解决方案--------------------
无厘头么?没有规律的话,你就取出 3,4 Add 再取出 1,2,5 Add 到新的List里去好了!
------其他解决方案--------------------
select * from table
where orderID='3' or orderID='4'
union
select * from table
where orderID<>'3' and orderID<>'4'


------其他解决方案--------------------
引用:
集合.OrderBy(x => x.OrderID == 3 ? -1 : x.OrderID == 4 ? 0 : x.OrderID);

这个办法很好。
------其他解决方案--------------------
感觉规则有点。。。
------其他解决方案--------------------
1楼的哥们.我感觉那挺麻烦的.3楼的.没写全吧..我直接list.OrderBy(x => x.OrderID == 3 ? -1 : x.OrderID == 4 ? 0 : x.OrderID); 结果不对
------其他解决方案--------------------
谢了.3楼..变量= list.OrderBy(x => x.OrderID == 3 ? -1 : x.OrderID == 4 ? 0 : x.OrderID).toList(); 就可以了
------其他解决方案--------------------
当你的ID不止两个的时候,还是按照1楼的做法最正规
------其他解决方案--------------------
嗯..只是不是太多.就可以.