VBでのLINQの書き方がわかりません。
LINQラブなのでVBでの書き方をまとめていきます。
まずはLINQを書く上ではずせない
オブジェクト初期化子、コレクション初期化子、匿名クラスについてVB、C#での書き方をまとめます。
まずはテスト用のクラスとして高級果物クラスです。
【C#】
private class Fruit { public string Name { get; set; } public string Rank { get; set; } public decimal Price { get; set; } }【VB】
Private Class Fruit Public Property Name As String Public Property Rank As String Public Property Price As Decimal End Class
オブジェクト初期化子
【C#】
Fruit fruit = new Fruit() { Name = "りんご", Rank = "A", Price = 1000 };【VB】
Withキーワードを使用します。
※Withキーワード以降で改行しても「_(アンダーバー)」は不要です。(注1)
Dim fuit As New Fruit() With { .Name = "りんご", .Rank = "A", .Price = 1000 }
コレクション初期化子
【C#】
var fruits = new List<Fruit>() { new Fruit(){Name = "りんご", Rank = "A" , Price = 1000 }, new Fruit(){Name = "みかん", Rank = "A" , Price = 600 }, new Fruit(){Name = "ぶどう", Rank = "B" , Price = 1200 }, new Fruit(){Name = "りんご", Rank = "B" , Price = 800 }, new Fruit(){Name = "みかん", Rank = "A" , Price = 500 } };【VB】
Fromキーワードを使用します。
※Fromキーワード以降で改行しても「_(アンダーバー)」は不要です。(注1)
Dim fruits = New List(Of Fruit)() From { New Fruit() With {.Name = "りんご", .Rank = "A", .Price = 1000}, New Fruit() With {.Name = "みかん", .Rank = "A", .Price = 600}, New Fruit() With {.Name = "ぶどう", .Rank = "B", .Price = 1200}, New Fruit() With {.Name = "りんご", .Rank = "B", .Price = 800}, New Fruit() With {.Name = "みかん", .Rank = "A", .Price = 500} }
匿名クラス
【C#】
dynamic myfruit = new { Name = "金のりんご", Rank = "AAA", Price = 9999999999 };【VB】
Withキーワードを使用します。
Dim myfruit = New With {.Name = "金のりんご", .Rank = "AAA", .Price = 9999999999}
注1
VBで改行「_(アンダーバー)」がVS2010より条件により省略できるようになりました。
省略できる条件はコチラ
Visual Basic 2010 の新機能 暗黙の行継続
C#の方がわかり易い。書き易い。
VB11年。C#1年。
C#のほうがイイなぁ・・・
0 件のコメント:
コメントを投稿