C#でのクローン作成(Clone)の基本:配列を複製する方法を解説
C#におけるクローン作成は、配列などのオブジェクトを複製したい場合に非常に便利な機能です。C#では、Clone()メソッドを使うことで、元の配列と同じ内容を持つコピーを簡単に作成できます。また、C#にはCloneメソッドに加えて、ICloneableインターフェースも用意されており、独自クラスの複製処理を実装することも可能です。
ここでは、Clone()メソッドを使って配列を複製する具体的な例を見ていきましょう。
サンプルコード
using System;
class Program {
static void Main() {
string[] arr = { "one", "two", "three", "four", "five" };
string[] arrCloned = arr.Clone() as string[];
Console.WriteLine(string.Join(",", arr));
Console.WriteLine(string.Join(",", arrCloned));
Console.WriteLine();
}
}
実行結果
one,two,three,four,five one,two,three,four,five
コードの解説
まず、次のように文字列型の配列を定義しています。
string[] arr = { "one", "two", "three", "four", "five" };
続いて、as演算子と組み合わせてClone()メソッドを呼び出すことで、新しい文字列配列へ配列のコピーを作成しています。
string[] arrCloned = arr.Clone() as string[];
Clone()メソッドの戻り値はobject型であるため、as演算子を使ってstring[]型にキャストしている点がポイントです。実行結果を見ると、元の配列と複製された配列の両方に同じ要素が出力されていることが確認できます。
なお、Clone()による複製は浅いコピー(シャローコピー)であることに注意してください。つまり、配列自体は別のオブジェクトとして新しく作られますが、参照型の要素が格納されている場合は、その要素自体は元の配列と同じインスタンスを参照します。単純な値型や文字列の配列であれば問題ありませんが、複雑なオブジェクトを含む配列を完全に独立させたい場合は、ディープコピーの実装を検討する必要があります。
-
C#の多次元配列とは?2次元配列の宣言方法と使い方を実例付きで解説
C#では、多次元配列を扱うことができます。int型の2次元配列は、次のように宣言します。int[] a;多次元配列の中で最もシンプルな形式が2次元配列です。2次元配列とは、1次元配列を要素として持つ配列、すなわち「配列の配列」のような構造をイメージすると分かりやすいでしょう。例えば、次の図は3行4列の2次元配列を表しています。多次元配列の使用例ここからは、実際にC#で多次元配列を操作するサンプルコードを見ていきましょう。以下の例では、5行2列の2次元配列を宣言・初期化し、入れ子になったforループですべての要素を出力します。using System; namespace ArrayApplic
-
Pythonで学ぶ畳み込み(Convolution)の基礎:画像から特徴を抽出する仕組みと実装
本記事では、Python 3.x(またはそれ以前のバージョン)における「畳み込み(Convolution)」について解説します。畳み込みは、ニューラルネットワークや画像の特徴抽出において中心的な役割を果たす基本的な操作です。推奨環境 − Jupyter Notebook前提条件 − NumPy および Matplotlib がインストール済みであることインストール方法必要なライブラリが未インストールの場合は、以下のコマンドで導入できます。>>> pip install numpy >>> pip install matplotlib畳み込みとは畳み込みとは、