我正在研究一个项目 Euler 问题,我想采用创建值列表并将列表添加到 Hashset 的方法,这样我可以在恒定时间内评估该列表是否已经存在于 hashset ,最终目标是为我的最终结果计算哈希集中的列表数量。
我遇到的问题是当我以这种方式创建列表时。
HashSet<List<int>> finalList = new HashSet<List<int>>();
List<int> candidate = new List<int>();
candidate.Add(5);
finalList.Add(candidate);
if (finalList.Contains(candidate) == false) finalList.Add(candidate);
candidate.Clear();
//try next value
显然,finalList[0]
当我清除候选人并且没有给我期望的结果时,该项目已清除。是否有可能有一个这样的列表(整数)哈希集?我将如何确保每次都实例化一个新列表并将其作为新项目添加到哈希集中,也许在 for 循环中测试许多值和可能的列表组合?