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

如何用Enumerable.Range创建过滤列表并移除字符串中匹配内容

字符串过滤实现方案(结合Enumerable.Range优化)

嘿,我帮你把这个字符串过滤的需求用更简洁的Linq方式实现了,替代原来的For循环,完全贴合你提到的思路:

需求回顾

我们需要从字符串中移除三类内容:

  • 固定关键词:hello
  • 数字范围:01-100、000-100(本质是数值0到100的所有字符串形式,含前导零)
  • 编码范围:A00B00到A100B100(A后跟0-100数字,B后跟0-100数字的组合)

实现思路

用Enumerable.Range生成所有需要过滤的编码组合,再结合Linq的过滤能力,一次性处理所有符合条件的内容:

完整代码示例

using System;
using System.Linq;
using System.Collections.Generic;

public class StringFilter
{
    public static void Main()
    {
        string input = "This is a A05B09 hello 02 100 test";
        
        // 生成AxxBxx格式的过滤列表(覆盖A00B00到A100B100所有组合)
        var abFilters = Enumerable.Range(0, 101)
                                  .SelectMany(a => Enumerable.Range(0, 101)
                                                              .Select(b => $"A{a}B{b}"));
        
        // 固定过滤关键词
        var fixedFilters = new List<string> { "hello" };
        
        // 合并为HashSet提升查询效率,支持忽略大小写(可根据需求调整)
        var allFilters = abFilters.Concat(fixedFilters).ToHashSet(StringComparer.OrdinalIgnoreCase);
        
        // 拆分字符串并过滤目标内容
        var resultWords = input.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
                               .Where(word => 
                                   !allFilters.Contains(word) && 
                                   !(int.TryParse(word, out int num) && num >= 0 && num <= 100));
        
        // 拼接为最终结果
        string result = string.Join(" ", resultWords);
        
        Console.WriteLine(result); // 输出:This is a test
    }
}

代码说明

  1. AxxBxx编码生成:通过嵌套的Enumerable.Range生成0到100的数字组合,自动覆盖A05B09、A100B100等所有符合范围的编码。
  2. 高效过滤集合:用HashSet存储所有过滤项,比普通列表的查询速度更快,适合多次复用过滤规则处理不同字符串。
  3. 数字过滤逻辑:通过int.TryParse自动处理前导零问题,只要字符串能转换为0-100之间的整数,就会被过滤。
  4. 灵活复用:如果需要调整过滤范围(比如A00B00到A50B50),只需修改Enumerable.Range的参数;新增固定关键词直接添加到fixedFilters即可。

这样实现不仅简洁易读,而且复用性强,完全满足你用Enumerable.Range创建过滤列表、处理多个不同字符串的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:31:25