【发布时间】:2015-12-16 21:00:28
【问题描述】:
如何在添加和删除项目时遍历 HashSet? 请记住,在实际程序中,有时不会将任何内容添加到列表中,因此列表有一个结束,它不是无限循环。
例如:
static HashSet<int> listThingy = new HashSet<int>() { 1, 2 } ;
static void Main(string[] args)
{
foreach (var item in listThingy)
{
listThingy.Add(3);
listThingy.Remove(item);
Console.WriteLine(item);
}
}
输出应该是这样的:
1
2
3
3
3
3
3
3
etc..
在程序中,我将向列表中添加随机值(有时不会添加任何内容),直到处理完所有值。
【问题讨论】:
-
不要使用 HashSet。你似乎需要一个队列。
-
不熟悉的可以看这里
Queuemsdn.microsoft.com/en-us/library/4a9449ty(v=vs.110).aspx -
HashSet
的元素没有排序。 IE。最后不会添加新元素,并且循环将以不可预测的顺序生成元素。因此这个循环不能工作。