在C#中创建使用两个类的对象列表

时间:2019-04-27 22:18:28

标签: c# list object getter-setter

我有一个带有行表的网站。每行都有两列值。我想做的是将每一行存储到列表中自己的位置,并使用户能够在列表中输入值并分别访问每个列的值,即;不只是排成一串。最终代码将包含一个for循环,以遍历行和webscraping代码,但是为了进行故障排除,我省略了该代码,只是对值进行了硬编码。我从2个类开始,一个类用于单个类值的getter / setter,另一类用于获取/设置该对象。从那里我创建了一种设置值的方法。

        public class Student
        {
            public string Name { get; set; }
            public string Address { get; set; }
        }

        public class ListOfStudents
        {
            public Student student { get; set; }
        }

        public static ListOfStudents GetListOfStudents()
        {
            List<Student> students = new List<Student>();
            Student student = new Student
            {
                Name = "Mike",
                Address = "Main St"
            };            
            ListOfStudents listOfStudents = new ListOfStudents
            {
                students.Add(Student)
            };
            return listOfStudents;
        }

我收到此错误“由于无法实现System.Collections.IEnumerable,因此无法使用集合初始化程序初始化类型'ListClass.ListOfStudents'”。基本上,我无法确定如何制作对象列表。

2 个答案:

答案 0 :(得分:1)

您忘记了使用列表

library(tidyverse)

DF1 %>%
  merge(DF2, by.x = "COLUMN1", by.y = "COL1", all.x = T) %>% 
  select(-COLUMN1) %>%
  rename(COLUMN1 = COL2)

和其他代码:

public class ListOfStudents
{
    public List<Student> Students { get; set; }
}
  

编辑

但是您的代码很奇怪,请说出您真正想要的

答案 1 :(得分:0)

您的代码中有错误,因为学生不是ListOfStudents的属性。下面的代码

    public class Student
    {
        public string Name { get; set; }
        public string Address { get; set; }
    }

    public class ListOfStudents
    {
        public List<Student> Students { get; set; }
    }

    public static ListOfStudents GetListOfStudents()
    {
        List<Student> students = new List<Student>();
        Student student = new Student
        {
            Name = "Mike",
            Address = "Main St"
        };
        students.Add(student);
        ListOfStudents listOfStudents = new ListOfStudents()
        {
            Students = students
        };
        return listOfStudents;
    }

作为当前上下文中的.net开发人员,我建议使用称为 Indexer

  

索引器:

     
    

索引器是一种特殊的属性类型,它以与内部表的表相同的方式提供对类或结构的访问。该属性与该属性相同,只是已使用带有方括号和参数的此关键字定义了该属性。

  

[源代码] https://www.tutorialsteacher.com/csharp/csharp-indexer

如何在上下文中使用索引器的示例:

 public class Student
 {
    public string Name { get; set; }
    public string Address { get; set; }
 }

 public class ListOfStudents
 {
    public Student[] Students = new Student[100];

    public Student this[int index]
    {
        get { return Students[index]; }
        set { Students[index] = value; }
    }
 }