链表无法打印正确的元素?

时间:2019-12-17 14:14:32

标签: c# linked-list console-application tostring

我想知道如何打印出我的链表,因为它当前用我编写的代码显示错误的文本?

Dinosaur Dino1 = new Dinosaur();                           
Console.WriteLine("You have selected Create a New Dinosaur");
Console.WriteLine("Please enter Dinosaur ID ");
Dino1.ID = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Please enter Dinosaur Species");
Dino1.Name = Console.ReadLine();
Console.WriteLine("Please enter Dinosaur Diet Type");
Dino1.Type = Console.ReadLine();
Console.WriteLine("Please enter Dinosaur Period");
Dino1.Period = Console.ReadLine();
Dinolist.AddFirst(Dino1);
foreach (Dinosaur str in Dinolist)
{
    Console.WriteLine(str); 
}

这是正在显示的内容:

ed

2 个答案:

答案 0 :(得分:3)

Dinolist是一个类(Dinosaur类)的列表,并且不是字符串,使用Console.WriteLine调用其.ToString()方法将得到以下结果:得到。

您可以这样做:

选项1:

foreach (Dinosaur dino in Dinolist)
{
    Console.WriteLine($"Name: {dino.Name}, Type: {dino.Type}"); 
}

选项2:  只需重写Dinosaur类的ToString()方法即可:

public class Dinosaur
{
     public string Name { get; set; }
     public string Type {get set;}
    //your class stuff here
    public override string ToString()
    {
         return $"Name: {Name}, Type: {Type}";
    }
}

答案 1 :(得分:2)

您需要定义类的字符串表示形式。可以通过重写类定义中的ToString()方法来实现。

备注1: ToString()方法不是用于显示属性的方法。它只是生成类的字符串表示形式。这意味着ToString()不包含任何Console.WriteLine逻辑或与此类似的东西。只需创建代表该类的字符串,然后将其返回即可。

注释2:在注释1之后,打印方式应类似于

foreach (Dinosaur dinosaur in Dinolist)
{
     Console.WriteLine(dinosaur.ToString()); 
}

希望这会有所帮助。