ホームページ > バックエンド開発 > C++ > C# コンソール アプリケーションでテーブルを効率的にレンダリングする方法

C# コンソール アプリケーションでテーブルを効率的にレンダリングする方法

DDD
リリース: 2025-01-04 17:46:40
オリジナル
974 人が閲覧しました

How to Efficiently Render Tables in C# Console Applications?

C# を使用してコンソール アプリでテーブルを簡単にレンダリングする方法

コンソール アプリケーションで急速に変化するデータのテーブルを表示したいという要望は、プログラマーが直面する共通の課題。 C# でこれに取り組む最も効率的な方法を詳しく見てみましょう。

String.Format による列の書式設定

一貫性と正確性を確保するには、次の String.Format メソッドを利用します。アライメント値。たとえば、次のようなコードを使用すると、書式設定された行を定義できます。

String.Format("|{0,5}|{1,5}|{2,5}|{3,5}|", arg0, arg1, arg2, arg3);
ログイン後にコピー

この例では、カンマの後の数字は各列の幅を表します。たとえば、最初の列の幅は 5 文字になります。

速度と列サイズの最適化

描画プロセスを最適化するには、次の手法を使用します。

  • StringBuilder を使用して文字列を連結する
  • 頻繁な計算を避けるために列幅をキャッシュします。
  • ちらつきを最小限に抑えるためにダブルバッファリング手法の使用を検討してください。

コード例

次の C# コードは、これらを実装する方法を示しています。原則:

using System;
using System.Text;

class Program
{
  static void Main(string[] args)
  {
    // Initialize data
    // ...

    // Establish column widths
    int[] widths = new int[4] { 10, 15, 20, 25 };

    // Create row separator
    StringBuilder rowSeparator = new StringBuilder();
    for (int i = 0; i < widths.Length; i++)
    {
      rowSeparator.Append('-', widths[i] + 2);
    }

    // Continuously update and display table
    while (true)
    {
      // Clear console
      Console.Clear();

      // Display header
      Console.WriteLine(rowSeparator.ToString());
      Console.WriteLine("| Column 1 | Column 2 | Column 3 | Column 4 |");

      // Display data rows
      foreach (object[] row in data)
      {
        StringBuilder rowBuilder = new StringBuilder();
        for (int i = 0; i < row.Length; i++)
        {
          rowBuilder.AppendFormat("|{0,-" + widths[i] + "}", row[i]);
        }
        Console.WriteLine(rowBuilder.ToString());
      }

      Console.WriteLine(rowSeparator.ToString());
    }
  }
}
ログイン後にコピー

このコードはテーブルを動的に更新して表示し、コンソール内で急速に変化するデータを簡潔かつ応答性の高い表現で提供します。

以上がC# コンソール アプリケーションでテーブルを効率的にレンダリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート