C# 列表输出不正确
我有一个正在读取数据的列表。我检查了如何输出列表,但对其他人有效的内容对我无效。我注意到我所看到的例子中没有一个像我这样在列表中使用类,我也找不到这样的例子 这是我的密码:C# 列表输出不正确,c#,list,class,member,C#,List,Class,Member,我有一个正在读取数据的列表。我检查了如何输出列表,但对其他人有效的内容对我无效。我注意到我所看到的例子中没有一个像我这样在列表中使用类,我也找不到这样的例子 这是我的密码: private static void AddCar(Vechicle _Motor, List<Vechicle> vehicles) { //int number = 1; Console.Clear(); Vechicle v = n
private static void AddCar(Vechicle _Motor, List<Vechicle> vehicles)
{
//int number = 1;
Console.Clear();
Vechicle v = new Vechicle();
Console.Write("/////////////////////ADDING CAR DETAILS\\\\\\\\\\\\\\\\\\\\\\\\");
Console.Write("\n\nEnter Make: ");
v.Make = Console.ReadLine();
Console.Write("\n\nEnter Model: ");
v.Model = Console.ReadLine();
Console.Write("\n\nEnter Year: ");
v.Year = Console.ReadLine();
vehicles.Add(v);
Console.Clear();
foreach (Vechicle value in vehicles)
{
Console.WriteLine(vehicles);
}
}
致:
正如评论中所建议的,但现在我明白了:
默认情况下,Console.WriteLine将在您传递的参数is上调用ToString-因为您传递的是集合,所以它使用ToString的默认实现,只打印类名
如果车辆通过一些合理的输出超越.ToString,而不是简单地将值传递给Console.WriteLine:
或者直接打印您需要的任何内容:
foreach (var value in vehicles)
{
Console.WriteLine("Make: {0}, model:{1}", value.Make, value.Model);
}
<> > totoString考虑使用String。Frase:如果您想要固定或非默认数字格式:,它将提供比+更多的格式化选项。
public class Vehicles
{
....
public override string ToString()
{
return String.Format("Make: {0}, model:{1}", Make, Model);
}
}
您需要在vehicle类中重载ToString方法,或者创建一个返回make model和year字符串的方法 一些示例代码
public class Vehicles
{
public string Make;
public string Model;
public string Year;
public override string ToString()
{
return Make + " " + Model + " " + Year;
}
}
无论何时调用Vehicles.ToString,都会覆盖ToString方法。ToString方法将返回make model year。看起来也有输入错误。Console.WriteLinevehicles应为Console。WriteLinevalue@AlexeiLevenkov我希望读入make、model和year的输出,然后读入列表作为输出。有没有可能找到那个复制品的链接?不,那根本不起作用。我看到的所有其他示例的参数中都有“in”后面的变量。这些示例当时是错误的@p、 s.w.g是正确的…不,它应该是Console.WriteLinevalue。这是C中foreach的参考:啊,显然是另一个输入错误,您将变量vaule命名为not value。谢谢,我做了您建议的更改,但仍然得到了错误的输出。然后它使用了你的建议和另一个答案,它起了作用。@Deathismy朋友,如果车辆超驰,你需要通过。尝试一些合理的输出:这可能是你在帖子中所说的,但我在这种形式下无法理解。@COYG我甚至没有注意到那句话。我只是在vehicles{Console.WriteLinevalue;}中引用foreach var值,因为您使用vehicles代替值。@COYG-是。。。这句话有点别扭:改写后可能更可读。没问题,很乐意帮忙。
foreach (var value in vehicles)
{
Console.WriteLine("Make: {0}, model:{1}", value.Make, value.Model);
}
public class Vehicles
{
....
public override string ToString()
{
return String.Format("Make: {0}, model:{1}", Make, Model);
}
}
public class Vehicles
{
public string Make;
public string Model;
public string Year;
public override string ToString()
{
return Make + " " + Model + " " + Year;
}
}