C#_配列要素を List に入れ替える

ToList 関数 を使う。

結論。

List < T > 変数 = Array.ToList ();

 

 

無駄な軌跡

hogeAry 配列
fugaListList

 

1 )

以下のように書いたら次のエラーが表示。

メソッド ' Enumerable.Select< xxx~ ' に対する型引数を
使い方から推論することはできません。型引数を明示的に指定してください。

    hogeAry = form2.testAry;     //Form2 から 配列を受け取り
    hogeAry.Select(x => fugaList.Add(x));

 

2 )

では、
form2 の Getter を、 配列から IEnumerable に変更。

    public IEnumerable<T> testAry()
    {
        int[ ] a = new int[ ]{ 1, 2 };
        return a;
    }

だが、

    hogeAry = form2.testAry;
    hogeAry.Select(x => fugaList.Add(x));

この hogeAry.Select で次のエラー

IEnumerable に Select の定義が含まれておらず、
型 IEnumerable の最初の引数を受け付ける拡張メソッド Select が
見つかりませんでした。
using ディレクティブまたはアセンブリ参照が不足していないことを
確認してください。

 

3 )

どうやら、
IEnumerable<T> から List<T> に変換する必要があるらしい。

List に変換したが、

    hogeAry = form2.testAry.ToList();

と書いたところで、推論エラー
追記 : hogeAry の型は var にしていたっけ?配列型ならエラーは当たり前だよなぁ…。

 

4 )

ここで気付いた。
要素を一つずつ取り出して入れるのではなく、
そのまま変換して In すればいいのでは?

つまり hogeAry 不要。
Getter も IEnumerable を使わないで、 T [ ] と配列のままで書いた。

    fugaList = form2.testAry.ToList();

これでOK。

 

今までいらぬことをやった。

 

こちらから。
http://pro.art55.jp/?eid=1303950
https://msdn.microsoft.com/ja-jp/library/hxfhx4sy(v=vs.80).aspx
https://teratail.com/questions/35971
https://qiita.com/rohinomiya/items/e96bc75c44470d7fed52
https://keibalight.wordpress.com/2011/07/28/669/
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/linq/type-relationships-in-linq-query-operations

 

以上。