交替控制台背景色-C#

交替控制台背景色-C#,c#,.net,colors,console,console-application,C#,.net,Colors,Console,Console Application,我目前正在尝试创建一个程序,将输出某些数据集。数据如下所示: Offer 1: Economy $203.20 Jetblue Airways Option 1 Departure: 2017-12-25 - 20:29:00.000 From: JFK Arrival: 2017-12-25 - 23:06:00.000 At: JAX Dep

我目前正在尝试创建一个程序,将输出某些数据集。数据如下所示:

 Offer 1:          Economy        $203.20         Jetblue Airways
    Option 1
    Departure: 2017-12-25 - 20:29:00.000             From: JFK               Arrival: 2017-12-25 - 23:06:00.000              At: JAX
    Departure: 2017-12-26 - 07:00:00.000             From: JAX               Arrival: 2017-12-26 - 08:16:00.000              At: FLL
    Departure: 2017-12-26 - 09:14:00.000             From: FLL               Arrival: 2017-12-26 - 11:14:00.000              At: PAP
    Total projected travel time: 14 Hours, 45 Minutes

    Option 2
    Departure: 2017-12-25 - 16:41:00.000             From: JFK               Arrival: 2017-12-25 - 19:14:00.000              At: JAX
    Departure: 2017-12-26 - 07:00:00.000             From: JAX               Arrival: 2017-12-26 - 08:16:00.000              At: FLL
    Departure: 2017-12-26 - 09:14:00.000             From: FLL               Arrival: 2017-12-26 - 11:14:00.000              At: PAP
    Total projected travel time: 18 Hours, 33 Minutes

    Offer 2:          Economy        $216.60         Jetblue Airways
    Option 1
    Departure: 2017-12-25 - 05:45:00.000             From: EWR               Arrival: 2017-12-25 - 08:28:00.000              At: MCO
    Departure: 2017-12-25 - 09:55:00.000             From: MCO               Arrival: 2017-12-25 - 12:07:00.000              At: PAP
    Total projected travel time: 6 Hours, 22 Minutes

    Option 2
    Departure: 2017-12-25 - 20:30:00.000             From: EWR               Arrival: 2017-12-25 - 23:13:00.000              At: MCO
    Departure: 2017-12-26 - 09:55:00.000             From: MCO               Arrival: 2017-12-26 - 12:07:00.000              At: PAP
    Total projected travel time: 15 Hours, 37 Minutes

    Offer 3:          Economy        $218.60         Jetblue Airways
    Option 1
    Departure: 2017-12-25 - 06:00:00.000             From: JFK               Arrival: 2017-12-25 - 08:48:00.000              At: MCO
    Departure: 2017-12-25 - 09:55:00.000             From: MCO               Arrival: 2017-12-25 - 12:07:00.000              At: PAP
    Total projected travel time: 6 Hours, 7 Minutes

    Option 2
    Departure: 2017-12-25 - 21:45:00.000             From: JFK               Arrival: 2017-12-26 - 00:34:00.000              At: MCO
    Departure: 2017-12-26 - 09:55:00.000             From: MCO               Arrival: 2017-12-26 - 12:07:00.000              At: PAP
    Total projected travel time: 14 Hours, 22 Minutes
可以有多达50个报价,因此正如您所想象的,输出可能会相当长。我想知道是否有任何可能的方法以编程方式格式化背景色,使每个选项在两个颜色块之间交替使用。例如,如果选项1的背景为灰色,则选项2的背景为黑色,选项3的背景为灰色,选项4的背景为黑色,等等。。。我不在乎报价文本周围是什么颜色,只要它与之前的色块相反。我试着用Console.BackgroundColor设置背景色,但它只突出显示文本,让控制台保持原来的颜色。我发现可以使用console.BackgroundColor()将整个控制台设置为一种颜色,然后使用console.Clear,但在我的例子中,这将删除数据。我想我要问的是,是否有可能在控制台中获得条纹背景


提前谢谢

使用
Console.BackgroundColor
并将其设置为enum
System.ConsoleColor
中的任何值。你将不得不在每一行上为你要做的事情更改它。不要使用
.Clear
,只需根据不同块的需要进行更改即可

阅读更多

编辑:

这是一个代码示例

using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            List<ConsoleColor> colors = Enum.GetValues(typeof(ConsoleColor)).Cast<ConsoleColor>().ToList();
            foreach (var back in colors)
            {
                Console.BackgroundColor = back;
                foreach (var fore in colors)
                {
                    Console.ForegroundColor = fore;
                    Console.Write("Test      ");
                }
            }
            Console.ReadLine();
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
名称空间控制台
{
班级计划
{
静态void Main(字符串[]参数)
{
列表颜色=Enum.GetValues(typeof(ConsoleColor)).Cast().ToList();
foreach(返回颜色的变量)
{
Console.BackgroundColor=back;
foreach(颜色中的变量fore)
{
Console.ForegroundColor=fore;
控制台。写入(“测试”);
}
}
Console.ReadLine();
}
}
}

背景色仅应用于实际打印值的列。您可以通过填充整行的空格打印到每一列:

var width = Console.WindowWidth;
Console.BackgroundColor = System.ConsoleColor.DarkRed;
Console.WriteLine("{0, -" + width + "}", "TestRed");

这将以深红色背景色打印整行。

如何打印?您可能需要在没有任何字符应用背景色的地方填充空格,但这只是猜测。这只是基本的Console.WriteLine()输出。我不想猜测需要多少标签才能填满所有东西。但如果这是我唯一的选择,我可能会选择。我的意思是,请创建一个屏幕截图,包括你看到的内容,并编辑一个以显示你想看到的内容。但这只会让我面临与我相同的问题。它只高亮显示文本,而不更改背景色。你能举例说明你的意思吗?也许我有点困惑。我添加了一个代码示例。如果你不能用这个做点什么…:(再一次。它不能解决我的问题。但是非常感谢你给它一次机会!是的!谢谢。这就是我要找的。