我想知道如何打印出我的链表,因为它当前用我编写的代码显示错误的文本?
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);
}
这是正在显示的内容:
答案 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());
}
希望这会有所帮助。