c# - 在 C# 中定义对象列表的困难

标签 c#

我编写了一个程序,该程序应该获取姓名和信息列表。好吧,这个问题我得解决几个类,比如学生和大学都要回答。但问题是我打算从哪里获取学生信息

static void Main(string[] args)
{
    Console.WriteLine("Some students enter the information you want? ");
    Count = int.Parse(Console.ReadLine());

    University university = new University();        
    university.Add();
    university.Sort();
    university.Report();
    Console.ReadKey();
}

为了解决这个问题,我必须指定学生的数量。

class University
{
    Student[] student = new Student[3]; 

     private int n = 0;
     public University()
     {
         for (int i = 0; i < 3; i++)
             student[i] = new Student();
     }

     public void Add()
     {
         Console.WriteLine();
         for (int i = 0; i < 3; i++)
         {
             student[n].Read();
             n++;
         }
     } 

比如我的学生人数是三个。我如何创建一种方法来输入提供信息但不默认的学生人数Õ而不是数字 3 是一个为用户提供所需数量的变量。

最佳答案

您可以定义一个属性来保存就读您大学的学生人数,并在创建大学时对其进行初始化。

class University
{
    public int NumbersOfStudents { get; private set; }

    public Student[] students;

    public University(int numberOfStudents)
    {
        NumberOfStudents = numberOfStudents;
        students = new Student[numberOfStudents];
    }
}

因此,当您想创建一所拥有 1000 名学生的大学时,您可以这样做:

var university = new University(1000);

现在名为 university 的对象有一个包含 1000 个“插槽”的学生数组。实际上,此数组中的每一项都是 null。我是说

university.Students[0], university.Students[1], ...

null

但是,我认为这不是实现您想要的目标的最有效方法。如果我是你,我会为此选择一个 List。我们通常使用一个数组,当我们知道我们将放置在那里的项目数量并且我们将来会遇到我们想要添加一个项目的任何情况时,这是不可能的,使用一个数组,因为数组的大小是固定的。另一方面,List 是一种没有固定大小的数据结构,它可以根据您想要向其中添加更多项的方式进行扩展。

就代码而言,我会选择这个:

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

    public University()
    {
        Students = new List<Student>();
    }
}

现在您可以创建一个大学的实例并这样做,您还将创建一个没有任何项目的新学生列表。

var university = new University();

现在您可以像下面这样简单地将学生添加到大学的学生中:

university.Students.Add(new Student());

关于c# - 在 C# 中定义对象列表的困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30401033/

相关文章:

c# - 确定数字是否在二进制序列中 1 2 4 8 16 32 64 等

C# GET请求和解析JSON

c# - 如何从 C# 调用带有结构指针参数的 C++ 函数?

c# - 无法在 C# 中反序列化 JSON 结果。输入字符串格式不正确错误

c# - Entity Framework Core 3.1 中的 LINQ group by

c# - 如何构造将输入下拉框的数据?

c# - DataGridView 设置列单元格 Combobox

c# - Linq 查询将重复项的子集减少为较大集合中的单个值?

c# - 无法在 Windows 10 上安装 dotnet-ef 工具

c# - mvc 模板中定义的导航栏在哪里?