2020年9月4日金曜日

文字列を半角全角 カナひらがなを無視してあいまい検索をしたい 検索文字はブランクで区切る

 using System;

public static class Snippet
{
    public static System.Boolean func(System.String iStr, System.String iTitle, System.String iProjectNo, System.String iCustomer, System.String iDesc)
    {
        if (iStr == null || iStr.Trim() == null || iStr.Trim() == "") {
            return true;
        }
        
        System.Globalization.CompareInfo ci =
        System.Globalization.CultureInfo.CurrentCulture.CompareInfo;

        string[] vStrs = iStr.Trim().Split(' ');
        int vFind = 0;
        foreach(string vStr in vStrs) {
            if (iTitle.Contains(vStr)
                || iProjectNo.Contains(vStr)
                || iCustomer.Contains(vStr)
                || iDesc.Contains(vStr)
                || ci.IndexOf(iTitle, vStr, System.Globalization.CompareOptions.IgnoreWidth) > 0
                || ci.IndexOf(iProjectNo, vStr, System.Globalization.CompareOptions.IgnoreWidth) > 0
                || ci.IndexOf(iCustomer, vStr, System.Globalization.CompareOptions.IgnoreWidth) > 0
                || ci.IndexOf(iDesc, vStr, System.Globalization.CompareOptions.IgnoreWidth) > 0
                || ci.IndexOf(iTitle, vStr, System.Globalization.CompareOptions.IgnoreKanaType)    > 0
                || ci.IndexOf(iProjectNo, vStr, System.Globalization.CompareOptions.IgnoreKanaType)    > 0
                || ci.IndexOf(iCustomer, vStr, System.Globalization.CompareOptions.IgnoreKanaType)    > 0
                || ci.IndexOf(iDesc, vStr, System.Globalization.CompareOptions.IgnoreKanaType)    > 0
                ) {
                    vFind++;
            }
        }

        if (vStrs.Length == vFind) {
                return true;
        }
        else {
                return false;
        }
    }
}