Me.RichTextBoxDownload.Text += "Nombre de host par poller" & Environment.NewLine
Dim querypoller = From row In hosts 'hosts est le datatable
Group row By poller = row.Field(Of String)("POLLER") Into PollerGroup = Group
Select New With {
Key poller,
.host = PollerGroup.Select(Function(r) r.Field(Of String)("Host")).Distinct
}
Dim listpoller = New List(Of Tuple(Of String, Integer))
For Each x In querypoller
listpoller.Add(New Tuple(Of String, Integer) _
(x.poller.ToString, x.host.Count))
Next
listpoller.Sort()
Dim result = From v In listpoller
Group v By v.Item1 Into TupleGroup = Group
For Each value In result
For Each item In value.TupleGroup
Me.RichTextBoxDownload.Text += value.Item1 & Convert.ToChar(Keys.Tab) & _
item.Item2 & Environment.NewLine
Next
Next
j'ai pas de datatable sous la main, j'ai fait avec une liste.
Public Class JMO2
Public Property Code3Caracteres() As String
Public Property Serveur() As String
Public Property Poller() As String
End Class
Public Class HostParPoller
Public Property Host() As String
Public Property Nombre() As Integer
End Class
Public Class RequetteJMO
Public Property Poller() As String
Public Property Nombre() As Integer
Public Property Hosts() As List(Of HostParPoller)
End Class
Dim lesDonneesJMO As New List(Of JMO2)() From {
New JMO2 With {.Code3Caracteres = "ACC", .Serveur = "server1", .Poller = "FR3PRD02"},
New JMO2 With {.Code3Caracteres = "ACC", .Serveur = "server2", .Poller = "FR3PRD01"},
New JMO2 With {.Code3Caracteres = "AS0", .Serveur = "server3", .Poller = "FR3PRD01"},
New JMO2 With {.Code3Caracteres = "ASU", .Serveur = "server8", .Poller = "FR3PRD01"},
New JMO2 With {.Code3Caracteres = "ASU", .Serveur = "server30", .Poller = "FR3PRD01"},
New JMO2 With {.Code3Caracteres = "AXO", .Serveur = "server50", .Poller = "FR3PRD02"}}
'nombre de host par poller
Dim toto = (
From y In lesDonneesJMO.GroupBy(Function(x) x.Poller)
Select New RequetteJMO With
{
.Poller = y.Key,
.Nombre = y.Count(),
.Hosts = y.GroupBy(Function(z) z.Code3Caracteres).Select(Function(w) New HostParPoller With
{
.Host = w.Key,
.Nombre = w.Count()
}).ToList()
}).ToList()
Merci pour ce code.utilisant les collections et classes qui répond à mon besoin.
For Each value In toto MessageBox.Show(value.Poller & Convert.ToChar(Keys.Tab) & _ Convert.ToChar(Keys.Tab) & CStr(value.Nombre)) For Each item In value.Hosts MessageBox.Show(item.Host.ToString & Convert.ToChar(Keys.Tab) & _ CStr(item.Nombre), value.Poller) Next Next
Merci pour ce code.utilisant les collections et classes qui répond à mon besoin.
Bonne journée,