C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でシーケンスをマージする方法:Zipメソッドの使い方を解説

C#では、Zipメソッドを使うことで、2つのシーケンス(配列やコレクション)を簡単に1つに結合できます。この記事では、整数型の配列と文字列型の配列をZipメソッドでマージし、新しいシーケンスを作成する方法を具体的なコード例とともに解説します。

マージする2つのシーケンスを用意する

まず、結合対象となる2つの配列を定義しましょう。

整数型の配列

int[] intArray = { 1, 2, 3, 4, 5, 6, 7, 8 };

文字列型の配列

string[] stringArray = { "Depp", "Cruise", "Pitt", "Clooney", "Sandler", "Affleck", "Tarantino" };

Zipメソッドでシーケンスをマージする

2つのシーケンスを結合するには、LINQのZipメソッドを使用します。Zipメソッドは、2つのシーケンスの要素を位置ごとにペアリングし、引数として渡したラムダ式に従って新しい要素を生成します。

今回の例では、整数と文字列をスペースで区切って連結するラムダ式を指定します。

var mergedSeq = intArray.AsQueryable().Zip(stringArray, (one, two) => one + " " + two);

それでは、プログラム全体のコードを見てみましょう。

サンプルコード全体

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

public class Demo {
   public static void Main() {
      int[] intArray = { 1, 2, 3, 4, 5, 6, 7, 8 };
      string[] stringArray = { "Depp", "Cruise", "Pitt", "Clooney", "Sandler", "Affleck", "Tarantino" };

      var mergedSeq = intArray.AsQueryable().Zip(stringArray, (one, two) => one + " " + two);

      foreach (var ele in mergedSeq)
      Console.WriteLine(ele);
   }
}

実行結果

1 Depp
2 Cruise
3 Pitt
4 Clooney
5 Sandler
6 Affleck
7 Tarantino

Zipメソッドのポイント

  • Zipメソッドは、2つのシーケンスの要素をインデックス順にペアリングして処理します。
  • どちらか一方のシーケンスが終端に達すると、マージ処理も終了します。上記の例では、文字列配列が7要素のため、出力も7行になっています。
  • ラムダ式の中身を変更すれば、数値の合計や文字列のフォーマットなど、任意の結合ルールを自由に定義できます。

このように、Zipメソッドを活用すれば、異なる型のシーケンスでも柔軟にマージできるため、データの組み合わせ処理に非常に便利です。

  1. Pythonでマージソートを実装する方法を徹底解説!サンプルコード付き

    この記事では、マージソート(Merge Sort)のアルゴリズムを使って配列を並べ替えるPythonプログラムについて、実際のコード例を交えながら詳しく解説します。 問題設定 課題 − 与えられた配列を、マージソートの考え方を用いて昇順に並べ替えます。 マージソートは分割統治法に基づく整列アルゴリズムです。まず配列を半分ずつ再帰的に分割し、要素が1つになった時点でそれを「ソート済み」とみなします。その後、隣り合う部分配列同士を先頭から比較しながら統合(マージ)していくことで、最終的に配列全体が整列されます。 Pythonでの実装例 # マージ関数 def merge(arr, l, m,

  2. 【Python】再帰を使わない反復型(ボトムアップ)マージソートの実装方法を解説

    この記事では、反復処理(イテレーション)のみでマージソートを実装する方法について解説します。再帰呼び出しを使わずに、whileループだけで配列を整列させる「ボトムアップ方式」のアプローチを見ていきましょう。 問題文 問題: 与えられた配列を、反復処理によるマージソートの考え方を用いて昇順に並べ替えてください。 例として、次の整数配列を扱います。 a = [2, 5, 3, 8, 6, 5, 4, 7] 反復マージソートの考え方 通常のマージソートは再帰を使って配列を分割しますが、反復版では最初から要素数1の部分配列として捉え、隣接する部分配列同士を統合(マージ)しながらサイズを倍々に増やしてい