C#/ VB - 更改类(对象)

时间:2016-06-30 13:43:21

标签: c# .net

我有一个Students列表,如下所示

public List<Students> StudentsClassCollection;

Students课程如下所示:

public class Students
{
    public string StudentName;
    public bool Passed;
}

我想访问其中一位学生,并将Passed的值从false更改为true。 我怎么能这样做?

4 个答案:

答案 0 :(得分:3)

使用Linq按名称识别学生并将该属性设置为true。仅使用名称是查找记录的一种可怕方式,因为您需要完全匹配(包括字母大小写)。添加主键或将名称分解为第一个和最后一个,并包括出生日期。

    public void UpdateStudentToPassed(string studentName)
    {
       StudentsClassCollection.Single(obj => obj.StudentName == studentName).Passed = true;
    }

答案 1 :(得分:2)

var foundStudent = StudentsClassCollection.First(s => s.StudentName == "LookingForYou");
foundStudent.Passed = true;

答案 2 :(得分:1)

如果您通过索引了解哪位学生,那么简单如下:

StudentsClassCollection[i].Passed = true

如果您要按姓名寻找学生,可能是:

var student = StudentsClassCollection.FirstOrDefault(s => s.name == "Bob");
if (student != null) {
 student.Passed = true
}

为学生&#34; Bob&#34;

答案 3 :(得分:0)

oop中最强烈的无能为力的事情之一就是做基础类应该叫做学生而不是学生(你可以在你的情况下看到它,当你希望它成为你做的学生时学生)

    public List<Student> StudentsClassCollection = new List<Students>();
    StudentsClassCollection.Add(new Student("Ben","true"))

    public class Student
    {
        public string StudentName {get; set;}
        public bool Passed { get; set;}

        public Student(string name,Bool pass)
        {
           this.StudentName = name;
           this.Passed = pass;
        }
    }

    foreach(Student s in StudentsClassCollection)
    {
       if(s.StudentName.Equals("what you looking for"))
          s.Passed = true;
    }