public int Process() { //NumExpert = OptionsList[0].Count; //NumCriteria = PairComparisonList[0].Matrix.GetLength(0); //NumOptions = OptionsList[0][0].Matrix.GetLength(0); // Step3 // калькуляция сводной таблицы double[,] summaryTable = CalculateSummaryTable(PairComparisonList); //Локальные приоритеты критериев var localPriority = CalculateLocalPriority(summaryTable); //Step4 Validate(summaryTable, localPriority); //Step6 List <double[]> summaryLocalPriorityOptions = OptionsList.Select(x => CalculateLocalPriority(CalculateSummaryTable(x))).ToList(); var result = summaryLocalPriorityOptions.Select((x, i) => new { Val = x.Select( (el, j) => el * localPriority[j]).Sum(), Index = i }).OrderByDescending(item => item.Val).FirstOrDefault()?.Index; return(result ?? -1); }