c# - Linq 按 bool 值排序

标签 c# linq

我有一个 linq 查询,我想通过 f.bar(一个字符串)对其进行排序,但我还想首先通过 f.foo(一个 bool 字段)对其进行排序。就像下面的查询。

(from f in foo
orderby f.foo, f.bar
select f)

虽然这个编译器没有按预期工作。它只是按 f.bar 命令,忽略 bool 字段。

我知道我很愚蠢,但我需要做什么才能获得这种行为?

谢谢

最佳答案

这应该可以正常工作 - 它应该首先对具有 false foo 值的实体 进行排序,然后对具有 true foo 值的实体进行排序。

这当然适用于 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);
        }
    }
    
}

关于c# - Linq 按 bool 值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5408177/

相关文章:

c# - 在不将 WPF 控件添加到窗口的情况下测试它

c# - 如何在基类中初始化应该在子类中初始化的字段?

C#:使用代码将列添加到绑定(bind)的 DatagridView

SQL按字母顺序获取结果范围

c# - 使用 linq 与 list<String> 进行比较?

c# - 通过从dll中获取文件来读取文件的内容

c# - 如何创建一个带有三个点的小按钮?

c# - FxCop 不尊重我的排除

c# - 调用 .SubmitChanges() linq 时获取随机堆栈溢出

c# - ADO.NET 实体模型和 LINQ