Как сделать так, чтобы строка получила свойство? C# - PullRequest
1 голос
/ 14 июля 2020

Я получил эту базу данных, которая будет отображать оценку ученика на основе того, что я напишу в коде. Например:

id = "Robert"
classType = "mathGrades"

А вот мой код

public string grades;

public string loadQuery(string id, string classType)
{
    students = jsonService.GetData(); // My Json reader gets data from my Json file
    string Class = "student." + classType; //I combine the scripts

    foreach (Student student in students)
    {
        if (student.name == id)//Check if we have a student by this name, if we do then get the grades for the class defined in "classType"  
        {
            grades = string.Join(", ", Class);//This is the part that I understand why it doesn't work, but I don't have an idea on how to replace it
        }
    }
    return grades;
}

Это класс Student:

public class Student
{
    public string name { get; set; }

    public List<int> mathGrades { get; set; }

    public override string ToString() => JsonSerializer.Serialize(this);
}

А это файл json, содержащий данные

 [
      {
        "name": "Test1",
        "mathGrades": [ 1, 2, 3 ]
      },
    
      {
        "name": "Test2",
        "mathGrades": [ 1, 2, 3 ]
      }
]

Я бы хотел, чтобы мой вывод был примерно таким, как «1, 2, 3», но я получаю только student.mathGrades. Я понимаю почему, просто не знаю, как это исправить. Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Вам следует изменить

 grades = string.Join(", ", Class);

на

grades = string.Join(", ", student.mathGrades);

Приведенный выше ответ объяснил вашу ошибку. String.Join ожидает массив значений. В вашем примере

string.Join(", ", "student.mathGrades");

возвращает student.mathGrades

0 голосов
/ 14 июля 2020

Вы создаете строку с именем Class и устанавливаете ее равной "student.mathGrades".

В вашем l oop вы фактически говорите grades = string.Join(", ", "student.mathGrades")

Поскольку "student.mathGrades" является всего одна строка, нет соединения, и она просто возвращается.

Если вы хотите, чтобы оценки возвращали список оценок, вам нужно извлечь этот список откуда-то. Было бы полезно узнать, как выглядит ваш студенческий объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...