在控制台的列中将多个列表彼此相邻放置

时间:2018-06-30 16:37:25

标签: c# console

我想知道如何将多个列表以一定的间距放置在没有间距的列中,使它们看起来像无边界表格

var visitorsName = new List<string>();
var visitorsAge = new List<int>();
var visitorsMark = new List<int>();

for (var number = 1; number <= noOfVisitors; number++)
{
    Console.Write("Hi, please type the student's name: ");
    var studentName = Console.ReadLine();
    visitorsName.Add(studentName);

    Console.Write("Please type the student's age: ");
    var studentAge = Convert.ToInt32(Console.ReadLine());
    visitorsAge.Add(studentAge);

    Console.Write("Please type his/her mark: ");
    var studentMark = Convert.ToInt32(Console.ReadLine());
    visitorsMark.Add(studentMark);

}

请原谅我在变量命名方面的不一致之处

1 个答案:

答案 0 :(得分:1)

我将创建一个具有所需属性的Student类,而不是为每个属性使用不同的列表:

class Student
{
    public string Name { get; }
    public int Age { get; }
    public int Mark { get; }

    public Student(string name, int age, int mark)
    {
        Name = name;
        Age = age;
        Mark = mark;
    }
}

现在您只可以列出Student个列表:

List<Student> students = new List<Student>
{
    new Student("Student 1", 15, 73),
    new Student("Student 2", 14, 85)
};

您将要从控制台输入中创建它们,但是为了简洁起见,我刚刚使用一些虚拟数据初始化了列表。

然后只需遍历列表并编写伪列的值即可。

foreach (Student student in students)
{
    Console.WriteLine("{0,-20}{1,-5}{2,-3}", student.Name, student.Age, student.Mark);
}

那应该给你看起来像这样的东西

Student 1           15   73
Student 2           14   85