我在列表中有一个单词列表.使用.Contains(),我可以确定一个单词是否在列表中.如果我指定的单词在列表中,如何从列表中获取单词的区分大小写拼写?例如,当单词"磷酸钠"时,.Contains()为真,但列表中包含"磷酸钠".如何执行不区分大小写的搜索("磷酸钠")但从列表中返回区分大小写的匹配("磷酸钠")?
我更喜欢避免使用字典,其中键是大写的,值是正确的,或反之.
Jon*_*eet 16
你想要的东西:
string match = list.FirstOrDefault(element => element.Equals(target,
StringComparison.CurrentCultureIgnoreCase));
Run Code Online (Sandbox Code Playgroud)
如果找不到匹配项,这将match作为null参考.
(你可以使用List<T>.Find,但是使用,FirstOrDefault使得代码更通用,因为它可以using System.Linq;在任何字符串序列上使用文件顶部的指令).)
请注意,我假设列表中没有空元素.如果你想处理它,你可能想要使用静态方法调用:string.Equals(element, target, StringComparison.CurrentCultureIgnoreCase).
另请注意,我假设您需要进行文化敏感的比较.请参阅StringComparison其他选项.