我只找到了 StringComparison,但这不适用于 Contains。另一个必要的事情是忽略大小写,“ä”应该等于“a”。
问问题
11445 次
3 回答
10
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;
}
于 2016-03-28T01:52:14.110 回答
6
在内部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))
.....
于 2013-04-26T22:41:31.550 回答
1
那是a的变音符号。“ä”与“a”不同。如果你想改变它,你需要明确地去做。
于 2013-04-26T22:36:15.723 回答