配列やListへ変換する

プログラミングC# 第6版 8.3.12


クエリ式で得られた結果を、時には配列へ変換したいこともあるでしょう。そういう場合にはToArrayを使います。

using System;
using System.Linq;

class Program {
    static void Main() {
        int[] nums = new int[] {
            1,2,3,4,5,6,7,8,9,10
        };
        
        var ret = from i in nums where i % 2 == 0 select i;
        
        // 配列へ変換
        int[] retNums = ret.ToArray();
        
        foreach(int i in retNums) {
            Console.WriteLine(i);
        }
    }
}
$ main
2
4
6
8
10

retはIEnumerable型なのでそのままだとint[]としては扱えません。それをToArrayメソッドを使って変換が出来るという感じですね。

またToListメソッドを使えばList型に変換することもできます。

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

class Program {
    static void Main() {
        int[] nums = new int[] {
            1,2,3,4,5,6,7,8,9,10
        };
        
        var ret = from i in nums where i % 2 == 0 select i;
        
        // Listへ変換
        List<int> retNums = ret.ToList();
        
        foreach(int i in retNums) {
            Console.WriteLine(i);
        }
    }
}

このようになります。便利ですね。