我努力在任何地方找到问题的答案,所以我不希望这是一个重复,如果是的话,我的不好!
我已经使用类设置了一个任务,这是我第一次使用类&列出如此原谅我的无知。
我想通过用户输入将已读取的数据存储到我的一个类成员中(我必须在整个任务中使用类成员)并将其添加到我创建的列表中。我尝试了很多方法,但现在我没有想法。程序让我输入第一个值(make),然后编译器抛出一个错误说:
"类型' System.ArgumentOutOfRangeException'的无法例外;发生在mscorlib.dll" "其他信息:指数超出范围。必须是非负数且小于集合的大小。"
private static void AddCar(Vechicle _Motor)
{
int number = 1;
Console.Clear();
List<Vechicle> MotorDeats = new List<Vechicle>();
Console.Write("/////////////////////ADDING CAR DETAILS\\\\\\\\\\\\\\\\\\\\\\\\");
Console.Write("\n\nEnter Make: ");
_Motor.Make = Console.ReadLine();
MotorDeats[number].Add(_Motor.Make);
Console.Write("\n\nEnter Model: ");
_Motor.Model = Console.ReadLine();
MotorDeats[number].Add(_Motor.Model);
Console.Write("\n\nEnter Year: ");
_Motor.Year = Console.ReadLine();
MotorDeats[number].Add(_Motor.Year);
Console.WriteLine(string.Join(", ", MotorDeats.Select(MotorDeat => MotorDeats.ToString())));
Console.ReadKey();
}
答案 0 :(得分:2)
Vechicle v = new Vechicle();
v.Make = 'Ford';
v.Year = 1990;
v.Model = 'Sedan'
MotorDeats.Add(v);
您不要将列表编入索引以添加项目。它会自动将其添加到列表的末尾。
答案 1 :(得分:0)
将您的列表传递给AddCar
更有意义,因为您丢失了MotorDeats
private static void AddCar(List<Vehicle> vehicles)
{
Console.Clear();
Console.Write("/////////////////////ADDING CAR DETAILS\\\\\\\\\\\\\\\\\\\\\\\\");
var v = new Vehicle();
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.WriteLine(string.Join(", ", vehicles.Select(_ => _.ToString())));
Console.ReadKey();
}
这样你可以收集你的车。或者您可以像这样创建循环
while (str != "n")
{
// your code
Console.Write("Add another Car? (Y/N)");
string result = Console.ReadLine();
if (result.ToLower() == "n")
str = "n";
}
这将允许您放置多辆车