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

C# 如何从List<string>中筛选仅存在大小写不匹配的重复字符串

实现方案

核心思路

  • 第一步:使用不区分大小写的字符串比较器对列表分组,让大小写不同的同源字符串进入同一分组
  • 第二步:对每个分组做区分大小写的去重,若去重后元素数量>1,说明该分组存在大小写不一致的重复项
  • 第三步:提取符合条件的分组结果即可

可运行代码

private void btnSearchAndFlag_Click(object sender, RoutedEventArgs e)
{
    List<string> stList = new List<string>() { 
      "Chassis", "chassis", "ABC", "ABC", "Chassis"  };
      
    var result = stList
      // 按不区分大小写分组,同源字符串归入同一组
      .GroupBy(x => x, StringComparer.OrdinalIgnoreCase)
      // 过滤规则:组内区分大小写去重后数量大于1,即存在大小写不一致的重复
      .Where(g => g.Distinct(StringComparer.Ordinal).Count() > 1)
      // 取分组Key,默认是组内第一个出现的字符串的大小写形式,符合示例返回"Chassis"的需求
      .Select(g => g.Key)
      .ToList();
}

扩展说明

用提供的示例输入运行上述代码,最终得到的result列表仅包含"Chassis",完全符合需求。如果需要返回同一个分组下所有不同大小写形式的字符串,只需把Select逻辑替换为SelectMany(g => g.Distinct(StringComparer.Ordinal))即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:15:01