2016-04-25 57 views
-1

如何修改HashSet中的元素?HashSet中的HashSet c#元素修改

我HashSet的樣子:

HashSet<int> mynumbers = new HashSet<int>(); 
mynumbers.Add(rnd.Next(1, 11)); 
mynumbers.Add(rnd.Next(1, 11)); 

輸出功能也可以用:

Console.WriteLine(mynumbers.ElementAt(0) + "and" + mynumbers.ElementAt(1)); 

看起來例如:

2和10

,但我怎麼能現在修改HashSet中的第一個值。

這是不可能的:

mynumbers.ElementAt(0) = 1; 
+3

'HashSet '按設計不保存順序。你希望實現什麼? –

回答

1

因爲在那個特定的哈希集合的項目是不可變的,你無法變異的項目。您需要添加一個可變類型的項目才能進行變異(即使這樣,如果您以改變該對象的相等或散列代碼的方式進行變異,您也會對自己造成重大問題)。

您可以從該集合中刪除該項目並添加一個新項目(使用這些操作的相應名稱的方法),但這絕不會改變您添加的項目。

當然,HashSet是一個無序集合,集合中沒有「第一個」項目,給定對象只是或不在集合中,它不在集合中的給定位置。如果您需要集合中的物品有位置,那麼您需要使用不同類型的集合。