Додайте хеші з повторюваними ключами до масиву


1

У мене є купа хешів у powerhell з однаковими ключами. Хоча створення масиву хешів з різними ключами просте і ґрунтовно обговорено в Інтернеті, я не можу знайти жодної інформації про додавання хешей до масиву з повторюваними ключами.

При спробі цього я отримав дві помилки:

Item has already been added. Key in dictionary: 'time' Key being added: 'time'

A hash table can only be added to another hash table.

Відповіді:


4

Ви не можете додавати повторювані ключі до хештелів, оскільки хештелі за конструкцією можуть містити лише унікальні ключі. Якщо вам потрібно зберегти повторювані пари ключів / значень, використовуйте масиви.

Я використовую масив незалежних хеш-таблиць, але якимось чином, коли ви додаєте хешбел до масиву, ключі повинні бути унікальними для всіх хештелів у масиві

Це 'дивно, тому що воно повинно добре працювати. Приклад:

$ArrayOfHashtables = @{Aplha = 'Bravo'}, @{Charlie = 'Delta'}, @{Echo = 'Foxtrot'}
$ArrayOfHashtables +  @{Charlie = 'Delta'}

Результат:

Name                           Value
----                           -----
Aplha                          Bravo
Charlie                        Delta
Echo                           Foxtrot
Charlie                        Delta

Я не впевнений, що ти маєш на увазі. Я використовую масив незалежних хеш-таблиць, але якимось чином, коли ви додаєте хешбел до масиву, ключі повинні бути унікальними для всіх хештелів у масиві
twinlakes

@twinlakes Це має добре працювати, див. оновлення. Чи можемо ми побачити ваш код?
битфоркер

Дивно. Я здогадуюсь, тоді це могла бути помилка, викликана автоматично розгортанням довжини = 1 масив. На жаль, у мене немає оригінального коду, оскільки моя ситуація дозволила мені використовувати його System.Collections.Queueзамість цього.
twinlakes

Дякую за пропозицію. У мене виникли проблеми з передачею інформації до API REST, який вимагав декількох атрибутів за допомогою повторюваних ключів.
ботман
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.