C#

C# Массив структур.Конструктор .Доступ к отдельным элементам массива в массиве структур.

Как обратиться к отдельным элементам массива в массиве структур?У меня есть экземпляр структуры "Students" - s. По заданию требуется вывести список студентов, не получивших 2 по экзамену, но не понимаю как обратиться к массиву с оценками(После инициалов идут баллы)-к отдельным цифрам. Заранее спасибо.
P.S Если кому не лень,подскажите как передать структуры в метод
У вас на второй картинке есть конструкция
 if (s[i].scores = 2.0) 
Вот так и обращайтесь, только если вам нужно скалярное значение, а не сам массив, то
 s[i].scores[j] 
и второй цикл по j (по оценкам, среди которых ищете двойку).

Передача структур и классов в метод - по имени типа, как и любой другой тип
 public void doSomething(Students st) {
//...
}

Кстати, если в вышеприведённом ифе имелось в виду сравнение, то вместо него написали присваивание. Работать не будет. Сравнение на равенство - это ==, а не =.

И я бы не рекомендовал использовать float и double для сравнения оценок на точное равенство, т.к. вычисления с этими типами имеют погрешность. Надёжнее использовать тип с фиксированной точностью decimal, а если вам приспичило вычислять именно с плавающей точкой, то сравнение a и b на равенство - это
 Math.Abs(a - b) < epsilon 
где epsilon - величина допустимой погрешности, например, для школьных оценок сойдёт 1e-6 или даже 1e-3.
Мурат Сарсенбаев
Мурат Сарсенбаев
54 053
Лучший ответ
Даурен Сейтов С поиском отдельного элемента всё равно ошибка вылетает
Даурен Сейтов уже решил, но спасибо!
>По заданию требуется вывести список студентов, не получивших 2 по экзамену
Это можно сделать гораздо проще:

 foreach (var x in s.Where(y => !y.scores.Contains(2.0)))
Console.WriteLine(x.surename);
Дима Крылов
Дима Крылов
90 940
У вас проблема в том, что вы делаете присваивание в if, а вы должны сделать сравнение. Используйте ==
Это первое. И второе. У вас scores тоже массив. Обращение там же по индексу. Если вам нужно проверить, содержится ли ваша оценка в массиве оценок, то используйте Contains.
Шевченко Павел
Шевченко Павел
20 187
Даурен Сейтов Visual studio выводит ошибку при "==" -уже пробовал