2011-08-16 40 views
5

我試圖將以下內容轉換爲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() }); 

這是我卡住,我已經嘗試了兩種不同的方法,但仍然沒有工作:

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) 

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() } 

回答

0

試試這個:

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() _ 
}) 

對象類(New Object()With {})與匿名類型(New With {})不同。

你可以在未來使用這個網站:http://www.developerfusion.com/tools/convert/csharp-to-vb/。它在大多數轉換中運行得非常好。

+0

謝謝Matthieu,這個方法奏效!我會記住嘗試上面的轉換鏈接。 – user896917

0

請嘗試以下

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()}) 
+0

謝謝JaredPar你的解決方案也工作得很好!我也可以給你綠色的複選標記。謝謝:) – user896917