0Pricing
C# Academy · レッスン

StringBuilder、比較とカルチャに関する注意点

StringBuilderで大きなテキストを効率的に構築し、StringComparisonとカルチャ対応APIを使って文字列を安全に比較します。

「StringBuilder、比較とカルチャに関する注意点」はCoddyKit上の無料C# Academyレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC# Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C# Academyコースには全3レッスンが含まれています。

概要

目標:長い文字列を効率的に作成し、テキストを正しく比較します。

  • 多数の追加にはStringBuilder
  • OrdinalとCultureの比較
  • 大文字と小文字を区別しないチェック

StringBuilder の基礎

ループ内で連結する場合はStringBuilderを使用して、割り当てを減らします。

using System;
using System.Text;

public class Program
{
  public static void Main(string[] args)
  {
    // Build a small CSV with many appends
    StringBuilder sb = new StringBuilder();
    sb.Append("id,name").AppendLine();
    for (int i = 1; i <= 3; i = i + 1)
    {
      sb.Append(i).Append(",Item ").Append(i).AppendLine();
    }
    string csv = sb.ToString();
    Console.WriteLine(csv);
  }
}

StringBuilder と + の比較

指針:

  • 少数の要素には"a" + b + cを使用します。
  • ループ内や多数の追加にはStringBuilderを使用します。
  • ループ内では同じ builder インスタンスを再利用します。

大文字と小文字を区別しないチェック

識別子(ファイル名やキーなど)には、カルチャーによる予期しない結果を避けるため、OrdinalIgnoreCaseを優先します。

using System;

public class Program
{
  public static void Main(string[] args)
  {
    string a = "file";
    string b = "FILE";

    bool ordEq = string.Equals(a, b, StringComparison.OrdinalIgnoreCase);
    bool ord   = string.Equals(a, b, StringComparison.Ordinal);

    Console.WriteLine("OrdinalIgnoreCase: " + ordEq); // true
    Console.WriteLine("Ordinal (case-sensitive): " + ord); // false
  }
}

カルチャーの例

カルチャーは結果に影響します(例:トルコ語の I)。明示的に指定し、データや識別子にはInvariantCulture、UI にはユーザーのカルチャーを使用します。

using System;
using System.Globalization;

public class Program
{
  public static void Main(string[] args)
  {
    string lowerI = "i";

    // Culture-sensitive uppercasing
    string trUpper = lowerI.ToUpper(new CultureInfo("tr-TR"));
    string invUpper = lowerI.ToUpper(CultureInfo.InvariantCulture);

    Console.WriteLine("tr-TR upper(i) = " + trUpper);   // "İ"
    Console.WriteLine("Invariant upper(i) = " + invUpper); // "I"
  }
}

ヒントと選択基準

ヒント:

  • ループ内でStringBuilderを再利用し、最後に一度だけ.ToString()を呼び出します。
  • キー、ID、ファイル名にはOrdinalIgnoreCaseを選択します。
  • ユーザー向けのテキストにはCurrentCultureを選択します。

比較のデフォルト

確認:大文字と小文字を区別しないファイル名チェックでは、通常どの比較方法をデフォルトにすると最も安全ですか?

まとめ

まとめ:多数の追加にはStringBuilderを使用し、識別子にはOrdinalIgnoreCaseを選択します。UI テキストにはカルチャー対応の API を使用します。

よくある質問

「StringBuilder、比較とカルチャに関する注意点」レッスンは無料ですか?

はい。「StringBuilder、比較とカルチャに関する注意点」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C# Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C# Academyコースには全3レッスンが含まれています。

「StringBuilder、比較とカルチャに関する注意点」で何を学びますか?

StringBuilderで大きなテキストを効率的に構築し、StringComparisonとカルチャ対応APIを使って文字列を安全に比較します。 ブラウザで直接実行するハンズオンコードでC# Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

C# Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのC# Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/3です。

「StringBuilder、比較とカルチャに関する注意点」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このC# Academyレッスンでコードを書いて実行できますか?

はい。すべてのC# Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 文字列とテキスト:不変性、補間、逐語的文字列、StringBuilder、比較
  2. StringBuilder、比較とカルチャに関する注意点
  3. char、Unicodeの基礎、簡単な解析と書式設定
← C# Academyに戻る