コード例 #1
0
        /// <summary>
        /// Esse é o método que ordena quais são os melhores espelhos.
        /// O score é calculado com base nas repetições dos mesmos colegas. Quanto menos repetições,
        /// melhor o score.
        /// </summary>
        /// <param name="historico"></param>
        /// <param name="arraysEmbaralhados"></param>
        /// <returns></returns>
        private List <Espelho> OrdenarEspelhosPorScoreDeRepeticao(Historico historico, List <string[]> arraysEmbaralhados)
        {
            List <Espelho> espelhos = new List <Espelho>();

            foreach (var arrayEmbaralhado in arraysEmbaralhados)
            {
                var projecao = historico.ObterHistoricoProjetadoComNovoEmbaralhamento(arrayEmbaralhado);
                var score    = new Espelho(projecao, arrayEmbaralhado);
                espelhos.Add(score);
            }

            var espelhosOrdenadosPorScore = espelhos.OrderBy(x => x.ValorScore);

            return(espelhosOrdenadosPorScore.ToList());
        }