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"