ホームページ > バックエンド開発 > C++ > 文字列をC#のカスタムサイズのセグメントにチャンキングするにはどうすればよいですか?

文字列をC#のカスタムサイズのセグメントにチャンキングするにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-27 01:26:09
オリジナル
998 人が閲覧しました

How Can I Chunkify a String into Custom-Sized Segments in C#?

C# で文字列をカスタム サイズのチャンクに効率的に分割する

この記事では、文字列をより小さな同じサイズのセグメントに分割する C# メソッドを示します。 長い文字列があると想像してください:

<code class="language-csharp">string longString = "1111222233334444";</code>
ログイン後にコピー

そして、それを特定の長さのチャンク (それぞれ 4 文字など) に分割する必要があります。望ましい出力は次のようになります:

<code>"1111"
"2222"
"3333"
"4444"</code>
ログイン後にコピー

解決策: 明確で簡潔なアプローチ

これを実現する最も効率的な方法は、LINQ の Enumerable.Range メソッドと Select メソッドを使用することです。

<code class="language-csharp">static IEnumerable<string> ChunkifyString(string str, int chunkSize)
{
    if (string.IsNullOrEmpty(str) || chunkSize <= 0)
    {
        yield break; // Handle null, empty, or invalid chunk size
    }

    for (int i = 0; i < str.Length; i += chunkSize)
    {
        yield return str.Substring(i, Math.Min(chunkSize, str.Length - i));
    }
}</code>
ログイン後にコピー

この改良されたメソッドでは、for ループと yield return を使用して、特に非常に大きな文字列のパフォーマンスを向上させます。 また、null または空の入力文字列と非正のチャンク サイズを明示的に処理するため、より堅牢になります。 Math.Min 関数は、最後のチャンクが文字列の残りの長さを超えないことを保証します。

使用例:

<code class="language-csharp">string myString = "111122223333444455";
int chunkSize = 4;

foreach (string chunk in ChunkifyString(myString, chunkSize))
{
    Console.WriteLine(chunk);
}</code>
ログイン後にコピー

これは出力します:

<code>1111
2222
3333
4444
55</code>
ログイン後にコピー

このアプローチは、チャンク サイズで完全に割り切れない長さの文字列をエレガントに処理し、結果のチャンクにすべての文字が含まれるようにします。 このソリューションは簡潔かつ効率的であり、さまざまな文字列操作タスクに最適です。

以上が文字列をC#のカスタムサイズのセグメントにチャンキングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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