Agrupando uma lista genérica via LINQ no VB.NET

Eu preciso pegar uma coleção e agrupá-la via Linq, mas todos os exemplos que eu vi falham de uma maneira ou de outra com alguma diferença de sintaxe que não consigo lambe

Minha coleção

Dim a As New List(Of ProcessAlert)
  a.Add(New ProcessAlert("000011236,7", "[email protected]", "Alert", 2))
  a.Add(New ProcessAlert("0000112367", "[email protected]", "Document", 2))
  a.Add(New ProcessAlert("0000112367", "[email protected]", "Note", 2))
  a.Add(New ProcessAlert("0000112367", "[email protected]", "Alert", 1))
  a.Add(New ProcessAlert("0000112367", "[email protected]", "Document", 1))
  a.Add(New ProcessAlert("0000112367", "[email protected]", "Note", 1))
Return a

Preciso transformar esta coleção em uma maneira simples de fornecer esse resultado final:

"[email protected]", "Alert, Document, Note"
"[email protected]", "Alert, Document, Note"

Aqui está a definição doProcessAlert classe

Public Class ProcessAlert
  Public LoanNumber As String
  Public EmailAddress As String
  Public AlertType As String
  Public AlertMethodID As Byte
End Class

Desde já, obrigado

C

Consegui converter para VB:

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

Agora, como adiciono um grupo ao número de empréstimo e ao endereço de e-mail para que meu resultado seja: "0000112367", "[email protected]", "Alerta, documento, nota"

questionAnswers(1)

yourAnswerToTheQuestion