我的示例代码:
public static bool StringSearchHit(string keyWord, params string[] targetArray)
{
foreach (string targetItem in targetArray)
{
if (targetItem.IndexOf(keyWord, StringComparison.InvariantCultureIgnoreCase) >= 0)
return true;
}
return false;
}
我遇到的问题:SQL中的LIKE
运算符不只是string.Contain()
或string.IndexOf()
,它还有“文化字符相似性”(我不知道该怎么称呼它)。
示例:当我使用LIKE '%pokemon%'
搜索时,还将包含“神奇宝贝”。字符“é”将被视为类似于“ e”。
与某些德语字符相同。在SQL中,特殊字符“äöü”也将被视为“ like”“ a o u”。
我的目标:当keyWord
为“ aou”且其中一个targetArray
具有“äöü”时,它也会返回true
。
c#中有与此等效的东西吗?
编辑:感谢您指出另一篇文章:
Ignoring accented letters in string comparison
这是正确的方向,但是在另一个问题中,它是“比较”而不是“包含”。如何在“ string.Contain”中做类似的事情?
编辑2 :感谢您提供正确的答案:
Complex "Contains" string comparison
尝试此解决方案后,可以使用“口袋妖怪”来搜索“神奇宝贝”,而可以使用“ aeon”来搜索“ÆonFlux”。
关闭案例并标记为重复。