C#:SQL“ LIKE”功能的等效含义是什么?

时间:2019-01-10 19:48:15

标签: c#

我的示例代码:

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”。

关闭案例并标记为重复。

0 个答案:

没有答案