我有一个linq查询,我想通过f.bar订购,这是一个字符串,但我也想通过f.foo订购它,这是一个布尔字段,首先.喜欢下面的查询.
(from f in foo
orderby f.foo, f.bar
select f)
Run Code Online (Sandbox Code Playgroud)
虽然这个编译它没有按预期工作.它只是通过f.bar命令忽略布尔字段.
我知道,我是愚蠢的,但是我需要做些什么才能得到这种行为?
谢谢
Jon*_*eet 168
这应该工作正常 - 它应该首先命令具有falsefoo值的实体,然后是具有truefoo值的实体.
这肯定适用于LINQ to Objects - 您实际使用的LINQ提供程序是什么?
这是一个LINQ to Objects示例,它可以工作:
using System;
using System.Linq;
public static class Test
{
public static void Main()
{
var data = new[]
{
new { x = false, y = "hello" },
new { x = true, y = "abc" },
new { x = false, y = "def" },
new { x = true, y = "world" }
};
var query = from d in data
orderby d.x, d.y
select d;
foreach (var result in query)
{
Console.WriteLine(result);
}
}
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*Raa 106
只是想这样做,似乎没有隐含的顺序.我做了以下更明确的事情:
Something.OrderBy(e=>e.SomeFlag ? 0 : 1)
Run Code Online (Sandbox Code Playgroud)
将某些东西归为真.
| 归档时间: |
|
| 查看次数: |
71409 次 |
| 最近记录: |