Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 10th, 2012  |  syntax: None  |  size: 1.44 KB  |  hits: 25  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Grouping a generic list via LINQ in VB.NET
  2. Dim a As New List(Of ProcessAlert)
  3.   a.Add(New ProcessAlert("0000112367", "5551110000@txt.att.net", "Alert", 2))
  4.   a.Add(New ProcessAlert("0000112367", "5551110000@txt.att.net", "Document", 2))
  5.   a.Add(New ProcessAlert("0000112367", "5551110000@txt.att.net", "Note", 2))
  6.   a.Add(New ProcessAlert("0000112367", "jdoe@home.com", "Alert", 1))
  7.   a.Add(New ProcessAlert("0000112367", "jdoe@home.com", "Document", 1))
  8.   a.Add(New ProcessAlert("0000112367", "jdoe@home.com", "Note", 1))
  9. Return a
  10.        
  11. "5551110000@txt.att.net", "Alert, Document, Note"
  12. "jdoe@home.com", "Alert, Document, Note"
  13.        
  14. Public Class ProcessAlert
  15.   Public LoanNumber As String
  16.   Public EmailAddress As String
  17.   Public AlertType As String
  18.   Public AlertMethodID As Byte
  19. End Class
  20.        
  21. Dim res = Alerts.GroupBy(Function(i) i.EmailAddress).Select(Function(g) New KeyValuePair(Of String, String)(g.Key, String.Join(",", g.Select(Function(x) x.AlertType).ToArray())))
  22.        
  23. var res = a.GroupBy(i=>i.EmailAddress )
  24.     .Select(g=> new KeyValuePair<string, string>(
  25.                     g.Key,
  26.                     string.Join(",", g.Select(x=> x.AlertType ).ToArray())
  27.             ));
  28.        
  29. var res = alerts
  30.     .GroupBy(a => new { L = a.LoanNumber, E = a.EmailAddress })
  31.     .Select(a => new
  32.         {
  33.             LoadNumber = a.Key.L,
  34.             EmailAddress = a.Key.E,
  35.             Types = string.Join(", ", a.Select(x => x.AlertType).ToArray())
  36.         }).ToList();