是否有另一种方法可以向hashset添加默认值而不干扰hashset计数?
本文关键字:hashset 干扰 计数 默认值 添加 另一种 方法 可以向 是否 | 更新日期: 2023-09-27 18:10:43
我想知道是否有另一种方法来初始化HashSet默认值?例如,
int[] array=new int[10];
/*This will initialize all array elements with zero*/-Value Type
HashSet<int>[] HSet= new HashSet<int>[10];
/*This will initialize all elements with Null Value*/-Reference Type
现在让我们假设我对HSet做一些操作,可能是HSet[i]. tostring(),这将导致NullReferenceException。为了避免这种情况,我会输入
for (int i = 0; i < 10; i++)
{
HSet[i] =new HashSet<int>(){0};
}
但是这将为set添加元素并将set计数增加到1。我的问题是,是否有一种替代方法来添加默认值到哈希集,而不干扰哈希集计数?e必须初始化哈希集,并且count必须为零(理想情况下Set中没有元素)
我尝试了初始化HashSet提供的方法,没有运气。
不能让一个哈希集合中只有一项而计数为0。希望,这是有意义的。
创建一个空的集合(new HashSet<int>()
),或者选择一个有用的默认初始元素并让计数为1,或者编写自己的集合类(可能包含HashSet
)。
从问题的角度来看,你要求的是不可能的事情,它闻起来像xy问题。
我的问题是,是否有另一种方法来添加默认值hashset和不干扰hashset计数?
你不能
当你打电话时
var HSet = new HashSet<int>[10];
你创建了一个HashSet,里面有10个元素,不管你是否设置它们。
但是这将为set添加元素并将set计数增加到1
不,你已经有了包含10个元素的HashSet,所以将它们设置为默认值不会改变Count
你可能会考虑使用List of HashSet而不是array of HashSet List>, List是动态的,所以当你实例化List
var HSet = new List<HashSet<int>>();
你将使HSet.Count()等于0。
我可以有我的哈希集初始化(非空),并有我的哈希集计数为零?
是的,用途:
var HSet = new List<HashSet<int>>();