Boy_Scouts_Scheduler.Algorithm.Score.ScoreTopPicks C# (CSharp) Метод

ScoreTopPicks() публичный статический Метод

public static ScoreTopPicks ( IEnumerable schedule, IEnumerable groups ) : uint
schedule IEnumerable
groups IEnumerable
Результат uint
        public static uint ScoreTopPicks(IEnumerable<Models.Activity> schedule, IEnumerable<Models.Group> groups)
        {
            uint[] scores = new uint[5] {100, 70, 50, 35, 23};
            uint score = 0;

            foreach (Models.Group group in groups)
            {
                uint numGroupPicks = 0;
                for (int lcv = 0; lcv < scores.Length; lcv++)
                {
                    Models.Station preference = new Models.Station();
                    if (lcv == 0)
                        preference = group.Preference1;
                    else if (lcv == 1)
                        preference = group.Preference2;
                    else if (lcv == 2)
                        preference = group.Preference3;
                    else if (lcv == 3)
                        preference = group.Preference4;
                    else if (lcv == 4)
                        preference = group.Preference5;

                    foreach (Models.Activity activity in schedule)
                    {
                        if (activity.Group == group && activity.Station == preference)
                        {
                            numGroupPicks++;
                            score += scores[lcv];
                            break;
                        }
                    }

                    //only score the group for their top three picks
                    if (numGroupPicks == 3)
                        break;
                }
            }

            return score;
        }