gpt4 book ai didi

c# - 一个类的一个属性指的是同一个类。如何管理实例

转载 作者:行者123 更新时间:2023-11-30 14:31:45 26 4
gpt4 key购买 nike

我的模块中有以下代码:

Class Studentdatabase
{
public List <student> studentslist;
public void UpdateStudentDetailsinlist();
}


Class student
{
public string name;
public int age;
public int marks;
public student friend;
}

我的模块用数据填充这个数据库,这个数据库将被另一个模块使用。

studentslist [0]
name - Trevor
age -12
marks - 33
friend -
name - Sam
age - 12
marks - 45

studentslist [1]
name - Warren
age -13
marks - 63
friend -
name - Sam
age - 12
marks - 45

studentslist [2]
name - Sam
age -12
marks - 45
friend - null

我的要求是,如果学生列表 [2] (Sam) 的标记更新为 48,则必须自动更新学生列表 [0] 和学生列表 [1] 中 Sam 的标记(也反向)。这如何在模块中实现?

最佳答案

您可以按如下方式使用。

class StudentContext
{
public List<Student> Studentslist { get; set; }

public void AddStudent(Student student)
{
if (null == Studentslist)
{
Studentslist = new List<Student>();
}
Studentslist.Add(student);
}

public void AddFriend(Student student,Student friendStudent)
{
Studentslist.Where(x => x.StudentId == student.StudentId).FirstOrDefault().Friend = friendStudent;
}
}

class Student
{
public int StudentId { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public int Marks { get; set; }
public Student Friend { get; set; }
}

public class Test
{
public static void Main()
{
Student student1 = new Student();
student1.StudentId = 1;
student1.Name = "A";
student1.Marks = 100;

Student student2 = new Student();
student2.StudentId = 2;
student2.Name = "AB";
student2.Marks = 10;

StudentContext studentContext = new StudentContext();
studentContext.AddStudent(student1);
studentContext.AddStudent(student2);
studentContext.AddFriend(student1, student2);

student1.Marks = 50;
student2.Marks = 77;
}
}

关于c# - 一个类的一个属性指的是同一个类。如何管理实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19534229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com