2016-04-25 9 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は順序付けされていないコレクションであり、コレクション内には「最初の」アイテムはありません。特定のオブジェクトはコレクション内にあるかどうかに関係なく、指定された位置のコレクションにありません。あなたのコレクション内のアイテムにポジションが必要な場合は、別のタイプのコレクションを使用する必要があります。