【发布时间】:2022-12-06 21:15:53
【问题描述】:
在添加新元组之前,我想检查列表是否已经包含该元组并避免再次将其添加到列表中,我该怎么做呢?我知道对于整数和字符串,您只需编写 list.Contains(2) 或 list.Contains("2"),但我不确定在检查元组时使用什么语法。
到目前为止,我已经尝试过这两个 (sn-ps)。 (组合是一个元组列表<char, char>)
if(!combinations.Contains(Tuple<char, char>(s[i], chr)))
{
combinations.Add(new Tuple<char, char>(s[i], chr));
}
if(!combinations.Contains(Tuple<char, char> s[i], chr))
{
combinations.Add(new Tuple<char, char>(s[i], chr));
}
添加效果很好,所以我认为比较时会相同。任何有关语法或逻辑的帮助都会很棒,谢谢 :)
【问题讨论】:
-
您可以使用
.Contains(Tuple.Create(s[i], chr))。另外:如果你的combinations是List<Tuple<char, char>>并且你不想重复,也许你想改用HashSet<Tuple<char, char>>?如果条目已经在集合中,它的Add方法将不执行任何操作。 -
我假设您想知道元组是否具有与列表中已有值相同的值?而不是实际上是同一个元组(相同的内存地址)?