Расчет среднего балла по предметам 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());
!Данные принимаются только в строковом типе!



