我只发现了StringComparison,但这对于Contains不起作用。 另一个必要的事情是忽略大小写,而“ä”应该等同于“a”。
答案 0 :(得分:5)
内部string.Contains
使用string.IndexOf传递StringComparison.Ordinal
。
所以我认为您可以轻松编写一个使用Contains
public bool CaseContains(string baseString, string textToSearch, StringComparison comparisonMode)
{
return (baseString.IndexOf(textToSearch, comparisonMode) != -1);
}
并致电
if(CaseContains(myString, mySearch, StringComparison.CurrentCultureIgnoreCase))
....
这种方法的优雅演变是创建扩展方法
public static class StringExtensions
{
public static bool CaseContains(this string baseString, string textToSearch, StringComparison comparisonMode)
{
return (baseString.IndexOf(textToSearch, comparisonMode) != -1);
}
}
并致电
if(myString.CaseContains(mySearch, StringComparison.CurrentCultureIgnoreCase))
.....
答案 1 :(得分:5)
public static bool CustomContains(this string source, string toCheck)
{
CompareInfo ci = new CultureInfo("en-US").CompareInfo;
CompareOptions co = CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace;
return ci.IndexOf(source, toCheck, co) != -1;
}
答案 2 :(得分:1)
多出一个umlaut。 “ä”与“a”不同。如果你想改变它,你需要明确地做。