Fun Coding

学んだことを記録していきます!

【C#】データテーブルの構造体をコピーする方法(Clone)

データテーブルの構造体をコピーする方法に「Clone」メソッドがあります。
サンプルコードを交えて解説したいと思います。

説明

データテーブルの構造体をコピーする。

ポイント

・値渡しされる
・データはコピーされない

コード
using System;
using System.Data;

namespace Sample {
    /// <summary>
    /// メインプログラム
    /// </summary>
    public class Program {
        /// <summary>
        /// テーブルの構造体のコピー
        /// </summary>
        static void Main() {
            // テーブルの生成
            var table = new DataTable();

            // テーブルに列を追加
            table.Columns.Add("名前", typeof(string));
            table.Columns.Add("年齢", typeof(int));

            // テーブルに主キーを設定
            table.PrimaryKey = new DataColumn[] { table.Columns[0] };

            // テーブルに行を追加
            table.Rows.Add("一郎", 10);
            table.Rows.Add("二郎", 20);


            // テーブルの構造体をコピー
            var clonedTable = table.Clone();

            // テーブルの構造体を出力
            foreach(DataColumn primaryKey in clonedTable.PrimaryKey) {
                Console.WriteLine("主キー : " + primaryKey.ColumnName);
            }
            foreach(DataColumn dataColumn in clonedTable.Columns) {
                Console.WriteLine("列名 : " + dataColumn.ColumnName);
            }
            Console.WriteLine("行数 : " + copiedTable.Rows.Count);
        }
    }
}
出力
主キー : 名前
列名 : 名前
列名 : 年齢
行数 : 0