2010-11-10 8 views
0

je le dictionnaire suivant:Comment calculer le groupe selon le nombre de clés dans un dictionnaire?

Dim idQueuedJobs As IDictionary(Of Int32, KeyValuePair(Of String, Int32)) = New Dictionary(Of Int32, KeyValuePair(Of String, Int32)) 

Pourquoi dupliquer paire KeyValue? En effet, le premier Int32 est juste un index normal, et la chaîne suivi d'un autre Int32 contient systemnames et la priorité du travail qued dans idQueuedJobs

Je veux calculer le nombre total de , comment est-ce que je peux obtenir ce compte en employant la méthode de groupby? idQueuedJobs

Quelque chose comme ça peut-être?

numberOfSystems As Int32 = idQueuedJobs.Values.GroupBy(...) 

Répondre

0
idQueuedJobs.Add(1, New KeyValuePair(Of String, Int32)("SYSTEM1", 1)) 
idQueuedJobs.Add(2, New KeyValuePair(Of String, Int32)("SYSTEM1", 2)) 
idQueuedJobs.Add(3, New KeyValuePair(Of String, Int32)("SYSTEM1", 1)) 
idQueuedJobs.Add(4, New KeyValuePair(Of String, Int32)("SYSTEM1", 3)) 
idQueuedJobs.Add(5, New KeyValuePair(Of String, Int32)("SYSTEM1", 4)) 
idQueuedJobs.Add(6, New KeyValuePair(Of String, Int32)("SYSTEM2", 1)) 
idQueuedJobs.Add(7, New KeyValuePair(Of String, Int32)("SYSTEM2", 2)) 
idQueuedJobs.Add(8, New KeyValuePair(Of String, Int32)("SYSTEM3", 3)) 
idQueuedJobs.Add(9, New KeyValuePair(Of String, Int32)("SYSTEM3", 3)) 
idQueuedJobs.Add(10, New KeyValuePair(Of String, Int32)("SYSTEM3", 4)) 

Dim numberOfSystems As Int32 = idQueuedJobs.Values.GroupBy(Of String)(Function(p) p.Key).Count 

Le code suivant entraînera numberOfSystems = 3

+0

Est-ce que le GroupBy besoin d'avoir GroupBy (Of String)? –

Questions connexes