Расчет среднего балла по предметам C#

У меня в данный момент имеется БД, в которой для решения задачи имеются таблица оценок, предметов и студентов. В программе я использую элемент WindowsFormsHost и библиотеку System.Windows.Forms.DataVisualization.Charting; для вывода диаграмм разного типа, к примеру: введите сюда описание изображения

введите сюда описание изображения Структура таблицы оценок:

введите сюда описание изображения

Структура таблицы предметов:

введите сюда описание изображения

Структура таблицы студентов:

введите сюда описание изображения

Вывод диаграмм происходит следующим образом:

 private void UpdateChart(object sender, SelectionChangedEventArgs e)
    {
        if (TypesOfDiagramCombo.SelectedItem is SeriesChartType currentType)
        {
            Series currentSeries = ChartStudentProgress.Series.FirstOrDefault();
            currentSeries.ChartType = currentType;
            currentSeries.Points.Clear();
            var counter = 0;
            var sum = 0;
            var gradesList = ClassForData.DBEntity.Grades.Where(it => it.ID_Student == users.ID).ToObservableCollection();
            currentSeries.Points.AddXY(currentSubjectGrade.FirstOrDefault().Subjects.Title, AverageGrades.ToString());
           
            foreach (var item in gradesList)
            {
                counter++;
                sum += item.Grade.Value;
            }
            AverageGrades = sum / counter;

            foreach (var item in gradesList)
            {
                currentSeries.Points.AddXY(item.Subjects.Title, AverageGrades.ToString());
            }
        }
    }

Код для расчета среднего балла здесь просто для наглядности. Проблема в данный момент заключается в том, что я не могу додумать, как рассчитать средний балл для каждого предмета на основании оценок, которые относятся к данному предмету в бд, и вывести без повторений эти предметы...

Добавление данных в диаграмме по оси x и y здесь:

currentSeries.Points.AddXY(item.Subjects.Title, AverageGrades.ToString());

!Данные принимаются только в строковом типе!


Ответы (0 шт):