2016-04-25 17 views
-1

Wie ist es möglich, ein Element in HashSet zu ändern?HashSet C# -Element in HashSet modifizieren

meine HashSet wie folgt aussieht:

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

sieht aus wie zum Beispiel:

2 und 10

aber wie kann ich

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

der Ausgang kann mit getan werden Ändere nun den ersten Wert im HashSet.

dies nicht möglich ist:

mynumbers.ElementAt(0) = 1; 
+3

'HashSet ' von Design nicht die Reihenfolge erhalten. Was hoffst du zu begleiten? –

Antwort

1

Da die Elemente in diesem bestimmten Hash-Set sind unveränderlich Sie nicht das Element mutieren. Sie müssten Elemente eines veränderlichen Typs hinzufügen, um sie zu mutieren (und selbst dann würden Sie große Probleme für sich selbst verursachen, wenn Sie es so mutieren, dass die Gleichheit oder der Hash-Code dieses Objekts geändert wird).

Sie können dieses Element aus dem Set entfernen und ein neues hinzufügen (indem Sie die Methoden der entsprechenden Namen für diese Aktionen verwenden), aber das ändert in keiner Weise das von Ihnen hinzugefügte Element.

Und natürlich ist eine HashSet eine ungeordnete Sammlung, es gibt kein "erstes" Element in der Sammlung, ein bestimmtes Objekt ist einfach oder nicht in der Sammlung, es ist nicht in der Sammlung an einer bestimmten Position. Wenn Sie möchten, dass die Elemente in Ihrer Sammlung eine Position haben, müssen Sie eine andere Art von Sammlung verwenden.