Как рассчитать группу по количеству ключей в словаре? - PullRequest
0 голосов
/ 10 ноября 2010

У меня есть следующий словарь:

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

Зачем дублировать пару KeyValue? Это связано с тем, что первый Int32 является просто нормальным индексом, а String , за которым следует еще один Int32 , содержит системные имена и приоритет задания qued в idQueuedJobs

Я хочу вычислить общее количество системных имен в idQueuedJobs , как я могу получить это количество, используя метод groupby?

Нечто подобное может быть?

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

1 Ответ

0 голосов
/ 10 ноября 2010
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

Следующий код приведет к numberOfSystems = 3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...