C# 学生=(FileRoutines.LoadStudents(STUDENT_文件));
我在上C课,我有一个项目。该项目为void Main编写了代码。以下是主要代码的第一部分: 我要写3个班级的学生,学生,和文件例程。我似乎不知道需要进入学生课堂什么才能让实例工作。我可以写以下内容:C# 学生=(FileRoutines.LoadStudents(STUDENT_文件));,c#,C#,我在上C课,我有一个项目。该项目为void Main编写了代码。以下是主要代码的第一部分: 我要写3个班级的学生,学生,和文件例程。我似乎不知道需要进入学生课堂什么才能让实例工作。我可以写以下内容: string[] students = FileRoutine.LoadStudents(STUDENT_FILE) 获取我正在尝试使用的学生数组: Students students=FileRoutines.LoadStudents(STUDENT_FILE)); 但我似乎无法让这个例子起作
string[] students = FileRoutine.LoadStudents(STUDENT_FILE)
获取我正在尝试使用的学生数组:
Students students=FileRoutines.LoadStudents(STUDENT_FILE));
但我似乎无法让这个例子起作用。这是文件的内容:
122338 Weltzer Teresa
123123 Wang Choo
123131 Adams James
123132 Binkley Joshua Troy
123139 Howard Tyler
123160 King Alma
我以前看过这个项目的帖子,但是似乎没有人能够回答这个问题,而是提供了其他的选择。
我知道在创建类的实例时,我需要一个或多个构造函数,但我没有这样做:
Students students = new Students();
到目前为止,我不知道该怎么办
谢谢
Dave要按要求实现,FileRoutines.LoadStudentsSTUDENT_文件必须返回一个Students实例,因此需要修改该方法来构造新的Students并返回该实例,而不是字符串[]
那么,您的学生类可能在其构造函数中使用字符串[]
这应该足够让你继续学习了?显然,学生类型必须表现得像某种集合。我提议这样做
一个班级对于一个学生来说是小菜一碟
class Student
{
public string Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
现在事情变得更有趣了。下面的类实现了Student的IEnumerable,以提供遍历其内部结构的最关键方法。一旦你有了这个想法,这就很容易了。您已经在某些集合中存储了学生,因此只需返回其枚举数,而不是创建自定义枚举数
class Students : IEnumerable<Student>
{
private readonly List<Student> students;
public Students(IEnumerable<Student> students)
{
this.students = students.ToList();
}
public IEnumerator<Student> GetEnumerator()
{
return students.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return students.GetEnumerator();
}
}
考虑一个更好的标题来描述你的问题。那太好了!什么东西不管用?FileRoutine.LoadStudents方法是什么样子的?@Joe看起来他还需要实现它。@OndrejJanacek,也许吧,但是我们怎么确定呢?
class Students : IEnumerable<Student>
{
private readonly List<Student> students;
public Students(IEnumerable<Student> students)
{
this.students = students.ToList();
}
public IEnumerator<Student> GetEnumerator()
{
return students.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return students.GetEnumerator();
}
}
class FileRoutines
{
public static Students LoadStudents(string path)
{
var lines = File.ReadLines(path);
var students = lines.Select(l => l.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries))
.Select(split => new Student
{
Id = split[0],
LastName = split[1],
FirstName = split[2]
});
return new Students(students);
}
}