예제 #1
0
파일: Form1.cs 프로젝트: 8GOGEN8/dz
        public static List <ParallelSearchResult> ArrayThreadTask(object paramObj)
        {
            ParallelSearchThreadParam param =
                (ParallelSearchThreadParam)paramObj;
            //Слово для поиска в верхнем регистре
            string wordUpper = param.wordPattern.Trim().ToUpper();
            //Результаты поиска в одном потоке
            List <ParallelSearchResult> Result = new
                                                 List <ParallelSearchResult>();

            //Перебор всех слов во временном списке данного потока
            foreach (string str in param.tempList)
            {
                //Вычисление расстояния Дамерау-Левенштейна
                int dist = Libs.Distance(str.ToUpper(), wordUpper);
                if (dist <= param.maxDist)
                {
                    ParallelSearchResult temp = new ParallelSearchResult()
                    {
                        word      = str,
                        dist      = dist,
                        ThreadNum = param.ThreadNum
                    };
                    Result.Add(temp);
                }
            }
            return(Result);
        }
예제 #2
0
파일: Form1.cs 프로젝트: 8GOGEN8/dz
        public static void WriteDistance(string str1Param, string str2Param)
        {
            int d = Libs.Distance(str1Param, str2Param);

            Console.WriteLine("'" + str1Param + "','" +
                              str2Param + "' -> " + d.ToString());
        }