示例#1
0
        public StudentAndNoOfTen[] ReturnStudentsWithMostTenGrades(Student[] students)
        {
            var max = CountTheTenGradesFromAStudent(students[0]);

            StudentAndNoOfTen[] bestStudents = new StudentAndNoOfTen[0];
            var counter = -1;

            for (int i = 1; i < students.Length; i++)
            {
                if (max < CountTheTenGradesFromAStudent(students[i]))
                {
                    max = CountTheTenGradesFromAStudent(students[i]);
                }
            }
            for (int i = 0; i < students.Length; i++)
            {
                if (max == CountTheTenGradesFromAStudent(students[i]))
                {
                    Array.Resize(ref bestStudents, bestStudents.Length + 1);
                    counter++;
                    bestStudents[counter] = new StudentAndNoOfTen(students[i].studentName, max);
                }
            }
            return(bestStudents);
        }
示例#2
0
        public void ShouldReturnStudentsWithMostTenGrades()
        {
            Student[] students = new Student[]
            {
                new Student("Paul", new Material[]
                {
                    new Material("Math", new int[] { 10, 7 }),
                    new Material("English", new int[] { 7, 10 }),
                    new Material("French", new int[] { 10, 7 })
                }),
                new Student("Raul", new Material[]
                {
                    new Material("Math", new int[] { 10, 6 }),
                    new Material("English", new int[] { 6, 6 }),
                    new Material("French", new int[] { 6, 10 })
                }),
                new Student("Alin", new Material[]
                {
                    new Material("Math", new int[] { 10, 8 }),
                    new Material("English", new int[] { 10, 8 }),
                    new Material("French", new int[] { 10, 10 })
                }),
                new Student("Zoro", new Material[]
                {
                    new Material("Math", new int[] { 10, 6 }),
                    new Material("English", new int[] { 6, 10 }),
                    new Material("French", new int[] { 10, 10 })
                })
            };
            var result = new StudentAndNoOfTen[]
            {
                new StudentAndNoOfTen("Alin", 4),
                new StudentAndNoOfTen("Zoro", 4)
            };
            var function = ReturnStudentsWithMostTenGrades(students);

            CollectionAssert.AreEqual(result, function);
        }