use*_*917 5 c# linq vb.net c#-to-vb.net
我正在尝试将以下内容转换为vb.net.提前致谢
Categories.DataSource = objDT.Rows.Cast<DataRow>()
.Select(r => new { Attendee = r.Field<string>("Attendee"), Item = r.Field<string>("Item") })
.GroupBy(v => v.Attendee)
.Select(g => new { Attendee = g.Key, Item = g.ToList() });
Run Code Online (Sandbox Code Playgroud)
这是我卡住的地方,我尝试了两种不同的方法,但仍然无效:
Categories.DataSource = objDT.AsEnumerable() _
.Select(Function(r) New With {.Attendee = r.Field(Of String)("Attendee"), .Item = r.Field(Of String)("Item")}) _
.GroupBy(Function(v) v.Field(Of String)("Attendee")) _
.Select(Function(g) Attendee = g.Key)
Run Code Online (Sandbox Code Playgroud)
要么
Categories.DataSource = objDT.Rows.Cast(Of DataRow)().AsEnumerable _
.Select New Object(){ Function(r As DataRow) Attendee = r.Field(Of String)("Attendee"), Item = r.Field(Of String)("Item")} _
.GroupBy( Function(v) v.Category) _
.Select( Function(g) new { Category = g.Key, Numbers = g.ToList() }
Run Code Online (Sandbox Code Playgroud)
尝试这个 :
Categories.DataSource = objDT.Rows.Cast(Of DataRow)().Select(Function(r) New With { _
.Attendee = r.Field(Of String)("Attendee"), _
.Item = r.Field(Of String)("Item") _
}).GroupBy(Function(v) v.Attendee).Select(Function(g) New With { _
.Attendee = g.Key, _
.Item = g.ToList() _
})
Run Code Online (Sandbox Code Playgroud)
对象类(New Object() With {})与匿名类型(New With {})不同。
您将来可以使用此网站:http://www.developerfusion.com/tools/convert/csharp-to-vb/。它对于大多数转换都非常有效。