如何修改HashSet中的元素?
我的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;
答案 0 :(得分:1)
由于特定哈希集中的项目是不可变的,因此不能改变项目。您需要添加一个可变类型的项目才能改变它们(即使这样,如果您以改变该对象的相等或哈希代码的方式对其进行改变,您自己也会造成重大问题) )。
您可以从集合中删除该项目并添加一个新项目(使用这些操作的相应名称的方法),但这并不会更改您添加的项目。
当然,HashSet
是一个无序的集合,没有&#34;第一个&#34;在集合中的项目中,给定对象只是或者不在集合中,它不在给定位置的集合中。如果您需要集合中的项目有位置,那么您需要使用不同类型的集合。