【发布时间】:2021-01-27 17:46:43
【问题描述】:
我需要帮助。我不知道如何解释我的问题。我之前尝试过发布一次,但它被关闭了,因为我无法真正解释我的问题。 我正在尝试创建一个应用程序,用户可以在其中输入汽车值,例如汽车 ID、汽车容量(以千克为单位)和汽车登记号。 我声明一个这样的类:
public class Car
{
public string ID { get; set; }
public string capacityKg { get; set; }
public string reachKm { get; set; }
public string registrationNumber { get; set; }
}
然后我在我的代码中的循环外声明我的 List 和 Class:
List<Car> allCars = new List<Car>();
Car vehicle = new Car();
然后我在这样的 switch 语句中使用 do while 循环来每次从用户那里获取值:
do
{
vehicle = new Car();
Write("ID: ");
vehicle.ID = ReadLine();
Write("Capacity (kg): ");
vehicle.capacityKg = ReadLine();
Write("Reach (km): ");
vehicle.reachKm = ReadLine();
Write("Registration number: ");
vehicle.registrationNumber = ReadLine();
Clear();
WriteLine($ "ID: {vehicle.ID}");
WriteLine($ "Capacity (kg): {vehicle.capacityKg}");
WriteLine($ "Reach (km): {vehicle.reachKm}");
WriteLine($ "Registration number: {vehicle.registrationNumber}");
WriteLine(" ");
WriteLine("Is this correct? (Y)es (N)o");
ConsoleKeyInfo yesNo = ReadKey(true);
if (yesNo.Key == ConsoleKey.Y)
{
allCars.Add(vehicle);
Clear();
WriteLine("Delivery unit registered");
Thread.Sleep(2000);
Clear();
break;
}
else if (yesNo.Key == ConsoleKey.N)
{
Clear();
}
else
{
Clear();
WriteLine("Invalid key pressed.");
Thread.Sleep(2000);
Clear();
}
} while (invalidCarCredentials);
但是当我遍历列表时,我希望输出是这样的:
- 车号:ABC123
- 车号:ABC345
但是当用户输入一个新值时,它会得到如下输出:
- 车号:ABC345
- 车号:ABC345
表示旧值被新值覆盖。 我不想要那个
这是我遍历列表以在控制台上打印出值的部分:
Clear();
Write("Search for Car by ID: ");
string searchForCar = ReadLine();
if (vehicle.ID == searchForCar)
{
foreach (var veh in allCars)
{
WriteLine("Value found.");
// write here all the information you want to display.
WriteLine($"ID: {vehicle.ID}");
WriteLine($"Capacity (kg): {vehicle.capacityKg}");
WriteLine($"Reach (km): {vehicle.reachKm}");
WriteLine($"Registration number: {vehicle.registrationNumber}");
}
}
else
{
WriteLine("Unit not found");
}
ReadKey(true);
Clear();
break;
【问题讨论】:
-
请添加您在列表中迭代的部分并打印出列表值。
-
好的确定一秒
-
我认为它需要一个
allCars.Add(vehicle)。在任何地方都看不到。 -
@LocEngineer,它在 Do while 循环中的第一个 if 中。
-
我在 If 语句中有 allCars.Add(vehicle),因此用户会收到提示,如果这是正确的信息输入,如果他选择“Y”,则会添加
标签: c# list loops class switch-statement