示例#1
0
        public static MiMFa_Percent NameLikePerCent(string str1, string str2)
        {
            MiMFa_Percent p = LikePerCent(str1, str2);

            if (p.Positive > 70)
            {
                return(p);
            }
            str1 = MiMFa_Convert.ToSeparatedWordsFast(str1).ToLower();
            str2 = MiMFa_Convert.ToSeparatedWordsFast(str2).ToLower();
            var lst1 = str1.Split(new string[] { "   ", "  ", " ", "&", ",", "،", "'", "`", ":", "؛", ";", ".", "?", "؟", "!" }, StringSplitOptions.RemoveEmptyEntries);
            var lst2 = str2.Split(new string[] { "   ", "  ", " ", "&", ",", "،", "'", "`", ":", "؛", ";", ".", "?", "؟", "!" }, StringSplitOptions.RemoveEmptyEntries);

            p = new MiMFa_Percent();
            decimal f = 100 / Math.Max(lst1.Length, lst2.Length);

            for (int i = 0; i < lst1.Length; i++)
            {
                for (int j = 0; j < lst2.Length; j++)
                {
                    if (lst1[i].Length > lst2[j].Length)
                    {
                        if (lst1[i].StartsWith(lst2[j]))
                        {
                            p.AddValue(f); break;
                        }
                    }
                    else
                    {
                        if (lst2[j].StartsWith(lst1[i]))
                        {
                            p.AddValue(f); break;
                        }
                    }
                }
            }
            return(p);
        }