Я создал класс под названием studentRecord
и содержит несколько свойств, таких как Student Number, First Name, Last Name, Courses, and Credit Hours
для отслеживания отдельных записей учащихся. Я также создал list
под названием List<studentRecord> lstRecords = new List<studentRecord>();
, в котором хранятся различные объекты (учащиеся).C# Как получить доступ к определенному индексу списка классов
Я понимаю, что добавление объекта student
осуществляется с помощью lstRecords.Add();
, но я столкнулся с проблемой редактирования объектов. Предполагается, что пользователь сможет ввести номер студента, а затем иметь возможность доступа и редактирования свойств этого конкретного экземпляра объекта. Я пришел с этим кодом:
StudentRecord editRecord = lstRecords.Find(indexRecord =>
indexRecord.intStudentNumber == intChosenRecord);
(Кстати, intChosenRecord
переменным я объявил отслеживать, какой индекс они ищут)
Я понимаю, что StudentRecord
объявляет новый объект этого типа, и что editRecord
- это имя моего нового объекта. Однако у меня возникают проблемы с использованием метода .Find()
. Я понимаю, что .Find()
ищет в своем списке что-то, которое совпадает со входом. Поэтому я предполагаю, что intChosenRecord
- это то, что ищет программа.
Однако я не знаю, что такое indexRecord
! Это единственный раз, когда он используется в коде, и я могу изменить его на любое имя, которое я хочу без ошибок. Может кто-нибудь объяснить, что делает этот код, и что такое indexRecord
?
это просто псевдоним для элемента в настоящее время обрабатываются в пределах вашего LINQ-выражения. Его также можно назвать SuperMan. Таким образом, все это просто означает: найти все элементы (назовем их indexRecord), которые заполняют условие. – HimBromBeere
Существует отличный пример на http://msdn.microsoft.com/en-us/library/x0b5b5bc(v=vs.110).aspx – Florian
Возможный дубликат [Что делает этот код C# со значком «стрелка» и как это называется?] (http://stackoverflow.com/questions/4829054/what-does-this-c-sharp-code-with-an-arrow-mean-and-how-is-it-called) –