不区分大小写的列表搜索

2023-12-02

我有一个清单testList包含一堆字符串。我想添加一个新字符串到testList仅当列表中尚不存在时。因此,我需要对列表进行不区分大小写的搜索并使其高效。我不能使用Contains因为这没有考虑外壳。我也不想用ToUpper/ToLower出于性能原因。我遇到了这个方法,它有效:

    if(testList.FindAll(x => x.IndexOf(keyword, 
                       StringComparison.OrdinalIgnoreCase) >= 0).Count > 0)
       Console.WriteLine("Found in list");

这可行,但它也匹配部分单词。如果列表包含“山羊”,我无法添加“燕麦”,因为它声称“燕麦”已经在列表中。有没有一种方法可以以不区分大小写的方式有效地搜索列表,其中单词必须完全匹配?谢谢


我意识到这是一篇旧帖子,但以防万一其他人正在看,你can use Contains通过提供不区分大小写的字符串相等比较器,如下所示:

using System.Linq;

// ...

if (testList.Contains(keyword, StringComparer.OrdinalIgnoreCase))
{
    Console.WriteLine("Keyword Exists");
}

根据 .net 2.0 的说法,此功能自 .net 2.0 起就可用msdn.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不区分大小写的列表搜索 的相关文章

  • 使用索引避免迭代器失效,维护干净的接口

    我创建了一个MemoryManager
  • 如何将 CroppedBitmap 转换为 BitmapImage

    我正在尝试将 CroppedBitmap 转换为 BitmapImage 编辑 不使用内存流 我尝试过直接转换它 似乎这不是一个选择 这应该没那么难 我正在尝试剪切 BitmapImage 的一部分 并创建一个仅包含新裁剪的 Bitmap
  • 如何从 std::vector 中删除元素而不调整其大小

    迭代器擦除 迭代器位置 迭代器擦除 首先是迭代器 迭代器最后 擦除元素 从向量中删除 容器可以是单个元素 位置 或一系列元素 第一个 最后一个 这有效地减少了向量 大小除以元素数量 删除 调用每个元素的 之前的析构函数 and remove
  • 指向指针的指针和指向二维数组的指针之间的区别

    如果我有一个二维数组 B 定义为 int B 2 3 1 3 5 2 4 6 Is int p B与 一样int p 3 B int f B printf d f 1 gives 5作为输出 同时printf d f 给出 1 作为答案 为
  • C# Visual Studio 动态代码片段

    我正在开发一个 WinForms 项目 每天都会执行一些重复性的任务 所以我认为创建代码片段 https msdn microsoft com en us library ms165394 v vs 110 aspx会帮助我 但它仅适用于固
  • 用 C# 中的字典中的值替换字符串中的单词

    我有一个简单的dictionary像这样 var fruitDictionary new Dictionary
  • 多态性中基类缺少虚拟析构函数 = 资源泄漏?

    我们知道 如果要多态地使用基类 则需要将基类的析构函数指定为 virtual 否则程序中可能会出现资源泄漏 因为只会调用基类析构函数 而不会调用派生对象析构函数 我们还知道构造函数 析构函数纯粹是初始化 未初始化构造 而operator n
  • 错误 C2065:'cout':未声明的标识符

    我正在处理我的编程作业的 驱动程序 部分 但我不断收到这个荒谬的错误 错误 C2065 cout 未声明的标识符 我什至尝试过使用std cout但我收到另一个错误 IntelliSense 命名空间 std 没有成员 cout 当我宣布u
  • 将标准库添加到C++ eclipse项目中

    一个 非常 新手 C 问题 有没有办法自动将标准库添加到 C eclipse 项目中 我安装了 CDT 主要功能插件 您可以手动添加 STL 标头的路径路径和符号 gt 包含选项卡 http help eclipse org galileo
  • VS2010中VSHost.exe不断启动

    我正在 VS2010 中使用一个包含大量项目的解决方案 但它不断变得无响应 我注意到的一件事可能是一条线索 尽管我尚未开始任何调试 但 MyApplicationName vshost exe 不断出现在进程列表中 也许每当构建发生时它就会
  • ObjectTrackingEnabled 和 linq-to-sql

    I read here http www sidarok com web blog content 2008 05 02 10 tips to improve your linq to sql application performance
  • MVVM 同步集合

    是否有一种标准化方法可以将 Model 对象集合与 C 和 WPF 中匹配的 ModelView 对象集合同步 我正在寻找某种类 可以使以下两个集合保持同步 假设我只有几个苹果 并且可以将它们全部保存在内存中 换句话说 我想确保如果我将 A
  • Linux C++ 调试器

    我正在寻找完美的 Linux C 调试器 我不期望成功 但搜索应该提供丰富的信息 我是一个非常有能力的 gdb 用户 但 STL 和 Boost 很容易压垮我的调试技能 并不是说我无法深入了解数据结构的内部结构 而是它需要很长时间 我通常会
  • 如何循环遍历列表中除最后一项之外的所有项? [复制]

    这个问题在这里已经有答案了 Using a for循环 如何循环遍历列表中除最后一项之外的所有项 我想遍历一个列表 检查每个项目与后面的项目 我可以在不使用索引的情况下做到这一点吗 for x in y 1 If y是一个生成器 那么上面的
  • WPF MVVM后台打印数据绑定问题

    我正在使用 wpf mvvm 开发一个销售点应用程序 在交易生命周期的许多阶段 都会在后台打印收据 我已经使用其他示例在后台生成和打印收据 我正在后台打印一个 UserControl 一切看起来都很棒 然后 我为该控件创建了 ViewMod
  • 剥离 OLE 标头信息 (MS Access / SQL Server)

    我有一个 C 应用程序需要支持二进制数据库内容 图像等 当使用 MS Access 或 MS SQL Server 时 此数据被包装在 OLE 对象内 如何去除此 OLE 标头信息 请注意 我不能只查找特定标签的开头 因为内容可以是 png
  • 将 R 值传递给采用 L 值的函数时出现过载歧义

    我有 2 个重载函数 一个采用 L 值 另一个采用 R 值 目的是让该函数可以像这样调用 Obj obj foo obj OR foo Obj 所以 我写了2个重载函数 template
  • 更快的 WinSock sendto()

    我使用的是 Windows Server 2008 我的程序是用 C 编写的 我在 while true 循环中使用 WinSock2 和 sendto 来发送数据包 代码如下 while true if c snd gt max c sn
  • 使用反射检测属性的访问修饰符类型

    我编写了一些代码来使用反射查看属性 我已经使用反射从类中检索了属性列表 但是我需要查明该财产是公共的还是受保护的 例如 public string Name get set protected int Age get set Propert
  • RC4 实现与 openssl 输出不匹配

    我的目标是在 C C 中实现 RC4 流密码 并确保它产生与使用时相同的输出openssl命令 按照伪代码维基百科 https en wikipedia org wiki RC4 该实现似乎有效 因为它可以加密和解密内容 但是 加密的输出与

随机推荐

  • 如何在 Java 中使用带有托盘图标的上下文菜单?

    我正在使用 Netbeans 开发 Java 应用程序 我想在系统托盘上创建一个托盘图标 并且当我右键单击托盘图标时将显示一个弹出菜单 我通过拖放创建了一个 jframe 和弹出菜单 但我有一个问题 我的弹出菜单有 2 个菜单项 Exit
  • 什么二进制数只能表示为近似值?

    以十进制表示 以 10 为底 1 3只能近似为 0 33333 次重复 只能以近似值表示的二进制数相当于什么数 0 1 就是这样的一个例子 还有 0 2 这个问题也类似于这另一个问题 已经有了很好的答案
  • 对于具有大量字段的对象,是否有更好的方法来实现 Equals?

    也可以看看C 中如何快速检查数据传输的两个对象是否具有相同的属性 我有很多数据传输对象 DTO 每个对象都包含很多简单的字段 我需要对所有这些实现 Equals 这样我就可以编写一些单元测试来传输它们 var WCF 我正在使用的代码是 p
  • 如何通过 cython 将 MPI 通信器从 python 传递到 C?

    我正在尝试包装一个 C 函数MPI Comm通过 cython 通信器句柄作为参数 因此 我希望能够从 python 调用该函数 并将其传递给mpi4py MPI Comm目的 我想知道的是 如何进行转换mpi4py MPI Comm to
  • 在 GWT 模块之间导航

    我已将 GWT 应用程序分为多个模块 在它们之间导航的最佳方式是什么 目前我正在使用Window Location assign foo html bar 但还有更好的办法吗 History newItem仅适用于当前模块内的历史记录 要更
  • 具有相同输出的伪随机发生器

    我在以下网址看到一篇有关汽车远程进入系统的文章http auto howstuffworks com remote entry2 htm在第三个要点中 作者说 发送器和接收器都使用相同的伪随机数生成器 当发送器发送 40 位代码时 它使用伪
  • 需要 html 不能与 onclick 一起使用

    我使用以下内容在我的网站上提交表单 a class button href Register a 我在表单中输入了带有所需标签的内容 但这似乎并没有触发它们 含义不会阻止提交空输入 如果我使用普通的提交按钮 那么它工作得很好 onclick
  • 比较 char 忽略大小写的正确方法是什么?

    我想知道比较两个字符忽略大小写的正确方法是什么 适用于所有文化 也是Comparer
  • ws 和 wss 之间的区别?

    把ws改成wss的步骤是什么 wss 是通过普通 HTTP 进行升级还是 wss 仅适用于 HTTPS webSocket new WebSocket ws localhost port Esv ocp 当我将 ws 更改为 wss 时 工
  • geom_jitter 的高度/宽度参数与对数刻度相互作用

    在探索一些数据时遇到了这个问题 感觉像是意外的行为 所以我想发布一下 geom jitter采用高度 宽度参数来确定抖动的宽度 默认值为 40 当您添加对数刻度时 这 40 似乎会应用于原始值 但是 如果您想调整此参数 该值将在对数转换后应
  • 如何在 SAS 中获取 PROC REPORT 以显示没有观测值的 ACROSS 变量中的值?

    在 SAS 中使用 PROC REPORT 如果某个 ACROSS 变量有 5 种不同的值可能性 例如 1 2 3 4 5 但在我的数据集中没有观察到该变量等于 5 我该如何让报告显示 5 的列并为具有该值的观测值显示 0 目前 我的 PR
  • 是否还有其他具有非零索引数组位置的常见“类 c”或非“类 c”语言? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 C 编程语言被称为零索引数
  • 如何在角度独立组件中使用动画

    我正在尝试设置一个有角度的项目 独立组件 动画 Component selector my app standalone true imports CommonModule BrowserAnimationsModule template
  • 发送点击消息到另一个应用程序进程

    我有一个场景 我需要将点击事件发送到独立的应用程序 我使用以下代码启动了该应用程序 private Process app app new Process app StartInfo FileName app path app StartI
  • 有没有办法在Python中引用当前函数?

    我想要一个函数来引用它自己 例如是递归的 所以我做了类似的事情 def fib n return n if n lt 1 else fib n 1 fib n 2 大多数时候这都很好 但是fib实际上并不指代其自身 它指的是绑定fib在封闭
  • 将 System.Drawing.Bitmap 缩放到给定大小,同时保持纵横比

    我想扩展一个System Drawing Bitmap至少小于某个固定的宽度和高度 这是为了在网站上生成图片库的缩略图 所以我想保持纵横比相同 我有一些解决方案 但似乎没有一个真正能满足我的需要 它们围绕基于保持宽度或高度相同但不改变两者的
  • 模拟按键 C#

    I want to simulate F5 key press in my C program When IE is open I want to be able refresh my website automatically 我怎样才能
  • Java 中的动态泛型类型

    如果我有一个使用泛型类型的类 例如 public class Record
  • 谷歌地图 API 从 v2 升级到 v3,建议

    我在我的网络应用程序中完全集成了谷歌地图版本 2 具有获取方向 集群标记 选项卡式信息窗口 上下文菜单 右键单击 等功能 该实现的设计非常糟糕 导致了一些问题 所以现在我需要修改核心实现以更好的设计 我正在考虑升级到 google 地图 A
  • 不区分大小写的列表搜索

    我有一个清单testList包含一堆字符串 我想添加一个新字符串到testList仅当列表中尚不存在时 因此 我需要对列表进行不区分大小写的搜索并使其高效 我不能使用Contains因为这没有考虑外壳 我也不想用ToUpper ToLowe