Advertisement
Guest User

VB.NET linq group by with anonymous types not working

a guest
Sep 4th, 2012
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 1.48 KB | None | 0 0
  1. Module Module1
  2.  
  3.     Public Class Company
  4.         Public Property Name As String
  5.     End Class
  6.  
  7.     Public Enum Format
  8.         Style1
  9.         Style2
  10.         Style3
  11.     End Enum
  12.  
  13.     Public Class Definition
  14.         Public Property ID As Integer
  15.         Public Property Company As Company
  16.         Public Property Format As Format
  17.     End Class
  18.  
  19.     Sub Main()
  20.  
  21.         Dim defs As New List(Of Definition)()
  22.         defs.Add(New Definition() With {.ID = 1, .Company = Nothing, .Format = Format.Style1})
  23.         defs.Add(New Definition() With {.ID = 2, .Company = Nothing, .Format = Format.Style2})
  24.         defs.Add(New Definition() With {.ID = 3, .Company = Nothing, .Format = Format.Style3})
  25.  
  26.         defs.Add(New Definition() With {.ID = 4, .Company = Nothing, .Format = Format.Style1}) '-- <<< WILDCARD 1
  27.         defs.Add(New Definition() With {.ID = 4, .Company = New Company() With {.Name = "Test"}, .Format = Format.Style1}) '-- <<< WILDCARD 2
  28.  
  29.         '-- Get groups
  30.         Dim byFormat = From d In defs
  31.                        Group d By KeyedFormat = New With {Key .Format = d.Format, Key .Company = d.Company} Into Group
  32.                        Select New With
  33.                               {
  34.                                   .Company = KeyedFormat.Company,
  35.                                   .Format = KeyedFormat.Format,
  36.                                   .Definitions = Group.OrderByDescending(Function(x) x.ID)
  37.                               }
  38.  
  39.     End Sub
  40.  
  41. End Module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement