Dot-Net

是否存在具有鍵/值對的通用集合,其中鍵可以多次出現?

  • August 29, 2017

我想使用一個通用集合Dictionary,但Dictionary要求每個鍵都是唯一的。我對同一個“鍵”有多個值,所以我需要一個允許這樣做的通用集合。

我意識到這使得鑰匙不再是真正的鑰匙,但我不知道還能叫它什麼。

幾個選項供您考慮:

  • use a —為每個鍵Dictionary<TKey, List<TValue>>保留一個值*列表,*而不是防止相同鍵的重複值(即重複對);
  • use a —為每個鍵Dictionary<TKey, HashSet<TValue>>保留一*組值,*防止同一鍵出現重複值
  • 使用 a List<KeyValuePair<TKey, TValue>>- 保留對列表,不防止相同鍵的重複值。

請注意,在後一種情況下KeyValuePair是 a struct,而不是 a class,因此這意味著處理方式有所不同。

正確的選擇取決於您的實際案例。

引用自:https://stackoverflow.com/questions/5174309