Определение моего класса
Public Class ProcessAlert
Public LoanNumber As String
Public EmailAddress As String
Public AlertType As String
Public AlertMethodID As Byte
End Class
Общий список, представляющий данные, возвращаемые из БД
Dim a As New List(Of ProcessAlert)
a.Add(New ProcessAlert("0000112367", "5551110000@txt.att.net", "Alert", 2))
a.Add(New ProcessAlert("0000112367", "5551110000@txt.att.net", "Document", 2))
a.Add(New ProcessAlert("0000112367", "5551110000@txt.att.net", "Note", 2))
a.Add(New ProcessAlert("0000112367", "jdoe@home.com", "Alert", 1))
a.Add(New ProcessAlert("0000112367", "jdoe@home.com", "Document", 1))
a.Add(New ProcessAlert("0000112367", "jdoe@home.com", "Note", 1))
Return a
Я управлял этим оператором LINQ, который будет группироваться по LoanNumber и EmailAddress, но яне удается заставить AlertType отображаться как объединенное поле всех трех значений
Dim res = Alerts.GroupBy(Function(g) New With {Key .A = g.LoanNumber, Key .B = g.EmailAddress})
. Этот код даст мне группировку по EmailAddress и значения, которые мне нужны: "jdoe@home.com",«Предупреждение, документ, заметка», «5551110000@txt.att.net», «Предупреждение, документ, заметка»
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())))
Но я не могу получить утверждение, которое дает мне ответ, который выглядит следующим образом:
"0000112367","jdoe@home.com", "Alert, Document, Note"
"0000112367","5551112222@txt.att.net", "Alert, Document, Note"
Как получить 2 поля для группировки, а затем объединить значения AlertType в одно поле ???
Заранее спасибо