2017-06-15 9 views
1

現在、特定のデータセットを出力するプログラムを作成しようとしています。データは次のようになります。代替コンソールの背景色 - C#

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個のオファーがあります。私は、各オプションが2つのカラーブロックの間で前後に交互になるように、プログラムでバックグラウンドカラーをフォーマットする方法があるかどうか疑問に思っていました。例えば、オプション1が灰色の背景を持つ場合、オプション2は黒色、オプション3はグレー、オプション4は黒色などとなります。オファーテキストが囲まれている限り、前の色のブロックとは逆です。私はConsole.BackgroundColorで背景色を設定しようとしましたが、元の色が何であってもコンソールを残してテキストを強調表示しました。 Console.BackgroundColor()、Console.Clearを使用してコンソール全体を1つの色に設定できることがわかりましたが、これは私のケースではデータを削除します。私は、コンソールにストライプされた背景を得ることができるかどうか尋ねていると思います。

ありがとうございます!

+0

どのように印刷しますか?背景色を適用する文字がない場合は、スペースを埋める必要がありますが、これは単なる推測です。 – CodeCaster

+0

これは基本的なConsole.WriteLine()の出力です。私はすべてを埋めるために必要なタブの数を推測する必要はありません。しかし、それが私の唯一の選択肢ならば、私はそれのために行くかもしれません。 –

+0

私は[mcve]を作成し、あなたが見ているもののスクリーンショットを含め、あなたが見たいものを表示するように編集してください。 – CodeCaster

答えて

1

背景色にのみ、あなたが実際に値を印刷列に適用されます。あなたは空間充填によって列毎に行全体を印刷することができる:

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

これは暗赤色の背景色と行全体を印刷します。

+0

はい、ありがとう、これは私が探していたものです。 –

1

Console.BackgroundColorを使用し、enum System.ConsoleColorの任意の値に設定します。あなたは何をしようとしているのかをすべての行で変更する必要があります。 .Clearを使用しないでください。異なるブロックに必要なだけ変更してください。

続きを読むhere

編集:

ここにコードサンプルがあります。

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(); 
     } 
    } 
} 
+0

しかし、これは私に同じ問題を残すだけです。背景色を変えずにテキストを強調表示するだけです。あなたは、あなたが意味するものの例を挙げることができますか?おそらく私は混乱しています。 –

+0

コードサンプルを追加しました。もしあなたがこれで何かできないのなら、... –

+0

もう一度問題を解決することはできませんが、ありがとうございます。 –