我有一个 linq 查询,我想通过 f.bar(它是一个字符串)排序,但我也想首先通过 f.foo(它是一个布尔字段)排序。就像下面的查询一样。
(from f in foo
orderby f.foo, f.bar
select f)
虽然可以编译,但它并没有按预期工作。它只是通过 f.bar 进行排序,忽略布尔字段。
我知道我很愚蠢,但是我需要做什么才能得到这种行为?
Thanks
这应该可以正常工作 - 它应该使用以下命令对实体进行排序false
foo 值优先,那么那些有true
foo 值。
这在 LINQ to Objects 中当然有效 - 您实际使用的是哪个 LINQ 提供程序?
这是一个 LINQ to Objects 示例does work:
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);
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)