在LINQPad中,结果具有NULL的特殊样式。如何将其应用于布尔值或其他值?

时间:2011-10-27 21:56:52

标签: linqpad

我希望能够设置不同的返回值,类似于LINQPad样式为NULL的斜体绿色文本。具体来说,我想将布尔值TRUE和FALSE设置为不同,如蓝色和红色。

null values are styled differently

2 个答案:

答案 0 :(得分:8)

这不能通过内置样式表编辑器完成。但是,您可以编写一个您调用的扩展方法,如下所示:

void Main()
{
    // AdventureWorks
    Contacts.Select (c => new { c.FirstName, c.LastName, NameStyle = c.NameStyle.RedBlue() }).Dump();
}

static class Extensions
{
    public static object RedBlue (this bool value)
    {       
        string c = value ? "Blue" : "Red";
        return Util.RawHtml ("<span style='color:" + c + "'>" + value + "</span>");
    }
}

如果将扩展方法放入VS项目并将DLL复制到LINQPad plugins文件夹中,它将自动可用于所有查询。

编辑:您现在可以在“我的扩展”查询中定义该方法,而不必在VS中创建项目。

答案 1 :(得分:3)

我在MyExtensions sketch中使用此代码块取得了成功:

void Main()
{
    (!(true.Dump())).Dump();
}

public static class MyExtensions
{
    public static bool Dump (this bool value)
    {       
        string c = value ? "Blue" : "Red";
        Util.RawHtml ("<span style='color:" + c + "'>" + value + "</span>").Dump();
        return value;
    }
}