我在列表中有一个单词列表。使用.Contains(),我可以确定列表中是否有单词。如果我指定的单词在列表中,如何从列表中获得该单词的区分大小写的拼写?例如,当单词是“磷酸钠”但列表包含“磷酸钠”时,.Contains()为true。如何执行不区分大小写的搜索(“磷酸钠”),但从列表中返回区分大小写的匹配项(“磷酸钠”)?

我更喜欢避免使用键为大写且值使用大写形式的字典,反之亦然。

最佳答案

你想要这样的东西:

string match = list.FirstOrDefault(element => element.Equals(target,
                                     StringComparison.CurrentCultureIgnoreCase));

如果找不到匹配项,这会将 match 保留为 null 引用。

(您可以使用 List<T>.Find ,但使用 FirstOrDefault 会使代码更通用,因为它可以在任何字符串序列上使用 - 在文件顶部使用 using System.Linq; 指令。)

请注意,我假设列表中没有空元素。如果您想处理这个问题,您可能需要使用静态方法调用: string.Equals(element, target, StringComparison.CurrentCultureIgnoreCase)

另请注意,我假设您想要对文化敏感的比较。有关其他选项,请参阅 StringComparison

关于c# - 如何在List <string>中获得不区分大小写的匹配?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15347696/

10-14 19:12