如何使用逻辑重定位Linq行

时间:2011-08-30 17:40:29

标签: .net linq

我有一个来自SQL查询的LINQ,它返回已排序的行。 例如,它将返回:1 1 1 1 1 1 1 1 2 2 2 3 3 3 3 3 4 4 4 4 我正在寻找一种方法告诉LINQ削减&粘贴所有的1并将它放在3的后面,所以它看起来像2 2 2 3 3 3 3 3 1 1 1 1 1 1 1 4 4 4 4.

重定位指针的最有效方法是什么? (不选择&删除和复制)

感谢

3 个答案:

答案 0 :(得分:5)

尝试

query.OrderBy(x => x == 1 : 3.5 ? (float)x);

答案 1 :(得分:2)

试试这个:

var list = <YourLinqQuery>.ToList();
var sortedList = list.OrderBy(a=> (a==1)? 3.5:a);

答案 2 :(得分:1)

我会在Linq to SQL查询中这样做:

var query = from x in context.Table
            let Order = x.RowNum == 1 ? 3.5 : x.RowNum
            orderby Order
            select x;