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

Bingo游戏开发:如何从String数组移除List<string>中的指定元素

解决Bingo游戏中移除数组内已选中元素的问题

C#里数组是固定长度的,没法直接删除元素,所以得通过筛选生成新数组或者转成可变集合来处理,给你两种实用方案:

方案一:用LINQ快速筛选(最常用)

先引用System.Linq命名空间,然后一行代码就能生成移除已选数字后的新数组:

// 假设你的原始数字数组是string[] bingoNumbers;
// exceptions是存储已选中数字的List<string>
string[] filteredNumbers = bingoNumbers.Where(num => !exceptions.Contains(num)).ToArray();

filteredNumbers就是你要的、剔除了已选数字的新数组。

方案二:转成List后批量移除(适合后续还要修改集合的场景)

如果之后需要对数字集合做增删操作,先把数组转成List<string>,再用RemoveAll批量移除匹配元素:

List<string> bingoList = bingoNumbers.ToList();
// 移除所有在exceptions里的元素
bingoList.RemoveAll(num => exceptions.Contains(num));
// 要是需要转回数组,执行下面这句
// string[] filteredNumbers = bingoList.ToArray();

额外优化建议

  • 如果数字存在格式差异(比如带空格、大小写不同),可以先统一处理:
    string[] filteredNumbers = bingoNumbers
        .Select(num => num.Trim())
        .Where(num => !exceptions.Contains(num, StringComparer.OrdinalIgnoreCase))
        .ToArray();
    
  • 要是exceptions集合里元素很多,转成HashSet<string>能大幅提升查找效率(List的Contains是O(n),HashSet是O(1)):
    HashSet<string> exceptionSet = new HashSet<string>(exceptions);
    string[] filteredNumbers = bingoNumbers.Where(num => !exceptionSet.Contains(num)).ToArray();
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:50:16