【发布时间】:2013-03-11 20:12:18
【问题描述】:
我有一个列表中的单词列表。使用 .Contains(),我可以确定一个单词是否在列表中。如果我指定的单词在列表中,我如何从列表中获取单词的区分大小写的拼写?例如,当单词是“磷酸钠”但列表包含“磷酸钠”时,.Contains() 为真。如何执行不区分大小写的搜索(“磷酸钠”),但从列表中返回区分大小写的匹配项(“磷酸钠”)?
我更喜欢避免使用键为大写且值正确大小写的字典,反之亦然。
【问题讨论】:
-
旁注:您的标题说“区分大小写”,但看起来您正在寻找相反的内容。还有任何特殊原因不使用不区分大小写的键匹配的字典吗?
-
@AlexeiLevenkov 好吧,使用字典会导致程序的内存占用增加三倍,而不是使用更合适的(在这种情况下)搜索方法。
-
-
@AlexeiLevenkov 字典不会代替列表中的线性搜索,它会是除了,这就是它如此损失的原因。他在想
if(list.Contains(searchText, invariantComparer)) return caseLookup[searchText];之类的东西。