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で宣言することができます。
Please follow and like us:
コメント