You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何遍历列表时仅当值不存在才添加至列表末尾?

解决列表元素存在性检查后添加的问题

你的原代码逻辑错误在于:遍历过程中只要当前元素不等于目标值就立即执行添加操作,既没有完成整个列表的检查,还会导致重复添加。要实现「检查整个列表确认不存在后再添加」,可以用以下两种方式:

方法一:使用集合内置的Contains方法(推荐)

这是最简洁高效的方式,直接利用列表的Contains方法完成存在性检查:

string target = x.ToString();
if (!TestObject.Tags.Contains(target))
{
    TestObject.Tags.Add(target);
}

Contains会遍历整个列表判断元素是否存在,返回布尔值,我们只需在返回false时执行添加操作即可。

方法二:手动遍历标记存在性

如果需要自定义判断逻辑(比如忽略大小写等),可以手动遍历并标记是否存在:

string target = x.ToString();
bool isExists = false;
foreach (string id in TestObject.Tags)
{
    if (id.Equals(target)) // 若需要忽略大小写可改为id.Equals(target, StringComparison.OrdinalIgnoreCase)
    {
        isExists = true;
        break; // 找到匹配项后提前终止遍历,提升效率
    }
}
if (!isExists)
{
    TestObject.Tags.Add(target);
}

这种方式先完成整个列表的遍历检查,确认目标元素不存在后再执行添加,避免了原代码的逻辑错误。

内容的提问来源于stack exchange,提问作者devldnjc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 09:57:29