我有一个带有行表的网站。每行都有两列值。我想做的是将每一行存储到列表中自己的位置,并使用户能够在列表中输入值并分别访问每个列的值,即;不只是排成一串。最终代码将包含一个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'”。基本上,我无法确定如何制作对象列表。
答案 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; }
}
}