[LINQ] クエリ式(クエリ結果)

LINQによるクエリ結果は、IEnumerable(Of T)型(またはその派生型)です。

よって、クエリ結果は For Each(C#は foreach)で処理ができます。

IEnumerable(Of T)のデータ型は、対象となるデータソースによって変わってきます。


 

たとえば以下の例は、データソースはInteger型(C#はint型)であり、取得している要素も Integer型のため、取得結果のデータ型はIEnumerable(Integer)になります。

VBの例

Dim numbers() As Integer = {3, 5, 2, 1, 9, 8, 7}

Dim data = From num In numbers
           Select num

C#の例

int[] numbers = { 3, 5, 2, 1, 9, 8, 7 };

var data = from num in numbers
           select num;

次に、以下の例を見てみましょう。
データソースはString型(C#はstring型)で、取得している要素もstring型のため、取得結果のデータ型はIEnumerable(string)になります。

VBの例

Dim flowers As String() = {"Rose", "Tulip", "Sunflower"}

Dim data = From name In flowers
           Select name

C#の例

string[] flowers = { "Rose", "Tulip", "Sunflower" };

var data = from name in flowers
           select name;

最後に、以下の例を見てみましょう。

データソースはString型(C#はstring型)ですが、取得している要素は String型とIntegert型(C#のstring型とint型)なので、2つのプロパティからなるデータ型になります。
このような2つのオブジェクトを持つデータ型は存在しないため、コンパイラは自動的に型を生成します。
このようなデータ型を匿名型といいます。

匿名型はVB.NETの場合は Dim 変数名、 C#の場合は varで宣言することができます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください