2010年11月24日
川俣晶の縁側ソフトウェア技術雑記total 6610 count

.NET FrameworkのList<T>のインスタンスの複製を作る方法

Written By: 川俣 晶連絡先

 うっかり見落としていました。

 ArrayList.Cloneメソッドを置き換えるList<T>のそのものずばりのメソッドは無いと思っていました。

 従来の解釈はこれ。

  • ToAttayメソッド→配列への変換
  • ToListメソッド→List<T>への変換

 ところは、この2つはIEnumerable<T>のメソッドだから、IEnumerable<T>を実装したList<T>でも使用できます。その場合、ToListは自分自身の取得を意味するかというとさにあらず。ちゃんと新規に作ったList<T>のインスタンスを返してくれるようです。

using System;

using System.Collections.Generic;

using System.Linq;

class Program

{

    static void Main(string[] args)

    {

        var a = new List<string>() { "abc", "def" };

        var b = a.ToList();

        var c = a;

        Console.WriteLine("a and b is same instance?: {0}", a == b);

        Console.WriteLine("a and c is same instance?: {0}", a == c);

    }

}

実行結果 §

a and b is same instance?: False

a and c is same instance?: True

余談 §

 LINQのメソッドなので、.NET Framework 3.5以降でしか使用できないテクニックです。using System.Linq;も必須です。それゆえに、2.0~3.0のList<T>はあるのにLINQ非対応のバージョンでは使えない方法です。

Facebook

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2010年
11月
25日
PDC10 Japan・1日目の感想
3days 0 count
total 3391 count
【技術雑記】の前のコンテンツ
2010年
11月
21日
「技術力がある」とは実際には何を意味しているか?
3days 0 count
total 4848 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

https://mag.autumn.org/tb.aspx/20101124112530
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.