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

如何使用LINQ根据selectedValue变量移除listB中的指定元素

使用LINQ实现根据条件过滤列表元素

当然有可行的LINQ解决方案,LINQ的查询能力刚好能满足这个需求,下面分两种常见场景给出实现方式:

场景1:生成新的过滤后集合(推荐,符合LINQ设计理念)

LINQ的核心是查询并返回新序列,这种方式不会修改原列表,而是生成符合条件的新集合:

string selectedValue = "steel"; // 可切换为"iron"
var listB = new List<int> { 1, 21, 45 };

var filteredList = selectedValue switch
{
    "iron" => listB.Where(num => num != 21).ToList(),
    "steel" => listB.ToList(), // 复制原列表所有元素
    _ => listB.ToList() // 处理未预期的selectedValue值
};

说明

  • Where(num => num != 21)会筛选出所有不等于21的元素,当selectedValue为"iron"时生效;
  • ToList()将LINQ返回的延迟执行序列转换为List<int>,立即生成新集合;
  • 使用switch表达式让条件判断更简洁清晰。

场景2:直接修改原列表

如果需要直接修改原listB而不是生成新集合,可以用LINQ定位要移除的元素,再执行移除操作:

string selectedValue = "steel"; // 可切换为"iron"
var listB = new List<int> { 1, 21, 45 };

if (selectedValue == "iron")
{
    // 用LINQ筛选出所有需要移除的元素(这里是值为21的元素)
    var itemsToRemove = listB.Where(num => num == 21).ToList();
    foreach (var item in itemsToRemove)
    {
        listB.Remove(item);
    }
}

说明

  • 先通过LINQ查询得到所有要移除的元素并转成新列表,避免在遍历原列表时直接修改导致的异常;
  • 遍历新列表中的元素,逐个从原listB中移除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 11:47:44