我有一个这样的单词列表:
List<string> list = new List<string>();
list.Add("Horse");
list.Add("Shorse"):
Run Code Online (Sandbox Code Playgroud)
我想在列表中搜索特定字符串,无论大小写,但如果我这样做,它必须是完全匹配的
if (list.Contains("horse",StringComparer.CurrentCultureIgnoreCase))
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
它将同时找到 Horse 和 Shore。
我如何实现自己的自定义 Contains 方法来找到完全匹配的内容?
您已经在列表中正确地寻找完全匹配的内容。您明确指定的唯一一件事是您想要忽略匹配的大小写。Horse
因此,如果列表中有 a ,您也可以将其查找为horse
, 或hOrsE
。但你找不到它orse
:
List<string> list = new List<string>();\nlist.Add("Horse");\nlist.Add("Shorse");\n\n// we can find it with different casing\nConsole.WriteLine(list.Contains("horse", StringComparer.CurrentCultureIgnoreCase)); // true\nConsole.WriteLine(list.Contains("shorse", StringComparer.CurrentCultureIgnoreCase)); // true\n\n// but not elements that are not in the list\nConsole.WriteLine(list.Contains("orse", StringComparer.CurrentCultureIgnoreCase)); // false\n\n// if we don\xe2\x80\x99t want to ignore the case, we can also do that\nConsole.WriteLine(list.Contains("Horse")); // true\nConsole.WriteLine(list.Contains("Shorse")); // true\nConsole.WriteLine(list.Contains("horse")); // false\nConsole.WriteLine(list.Contains("shorse")); // false\n\n// and let\xe2\x80\x99s look at a list with only Shorse to be sure\xe2\x80\xa6\nlist.Clear();\nlist.Add("Shorse");\nConsole.WriteLine(list.Contains("horse")); // false\n
Run Code Online (Sandbox Code Playgroud)\n