c# /VB -更改类(对象)的属性值

本文关键字:对象 属性 VB | 更新日期: 2023-09-27 17:53:21

我有一个类似Students的列表

public List<Students> StudentsClassCollection;

Students类如下所示:

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

我想访问一个学生并将Passed的值从false更改为true。我怎么能做到呢?

c# /VB -更改类(对象)的属性值

使用Linq根据姓名识别学生,并将属性设置为true。仅使用名称查找记录是一种糟糕的方式,因为您需要完全匹配(包括字母的情况)。添加一个主键,或者将名字分为第一个和最后一个,并包括出生日期。

    public void UpdateStudentToPassed(string studentName)
    {
       StudentsClassCollection.Single(obj => obj.StudentName == studentName).Passed = true;
    }
var foundStudent = StudentsClassCollection.First(s => s.StudentName == "LookingForYou");
foundStudent.Passed = true;

如果你知道是哪个学生,通过索引,就像这样简单:

StudentsClassCollection[i].Passed = true

如果你正在寻找学生的名字,也许:

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

为学生"Bob"

oop中最无效的方法之一就是处理基类类应该被称为Student而不是students(在你的例子中你可以看到当你想要它为students时你可以使用Student的list)

    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;
    }