仅使用名称(以字符串形式)添加已创建的对象。 C#

时间:2018-10-26 07:51:10

标签: c# list class oop

我知道在现实生活中可能永远不会使用它,但是说我有一堆从Student类实例化的名称对象。即我知道我的Student对象的名称是“ s1,s2,s3”,我想将它们添加到“学生列表”中(使用循环),而不是对象的字段,而是对象本身。同样,我想强调一点,通常这样做永远没有意义,当然,容器会更好。我知道这是完全不正确的语法,但是我要捕获的想法是:

Student s1 = new Student(3434,"John Smith");
Student s2 = new Student(5454, "Sam Wilkies");
Student s3 = new Student(7878, "Jim Jam");
List<Student> students= new List<Student>();
for(int i; i<=3; i++){
    string j= "s" + i.ToString();
    students.add(Student[j]);

就像我说的那样,我知道这是完全不正确的语法。我以为也许可以使用Activator.CreateInstance(每个人都说要避免使用),但是我不知道。

1 个答案:

答案 0 :(得分:1)

简短的答案是你不能。不适用于局部变量。但这并不意味着您无法改进代码以完成所需的工作。

每次 number 个变量时,都犯了一个不使用容器(数组或列表)的错误。这就是您应该关注的重点,而不是稍后如何解决胶带错误。

Student[] s = new[] {
    new Student(3434,"John Smith"),
    new Student(5454, "Sam Wilkies"),
    new Student(7878, "Jim Jam")
}

// matter of fact this is not needed now, just to show you the loop:
List<Student> students = new List<Student>();

for(int i = 0; i < 3; i++)
{
    students.Add(s[j]);
}