C# 通过类成员将用户输入读入列表
我正在努力寻找我的问题的答案,所以我不希望这是一个重复,我的坏,如果它是 我已经被设定了一个使用类的任务,这是我第一次使用类和列表,所以请原谅我的无知 我想存储通过用户输入读取到我的一个类成员(我必须在整个任务中使用这些类成员)中的数据,并将其添加到我创建的列表中。我试过很多种方法,但现在我没有主意了。程序允许我输入第一个值(make),但编译器随后抛出一个错误,说明: “mscorlib.dll中发生“System.ArgumentOutOfRangeException”类型的未经处理的异常” “其他信息:索引超出范围。必须为非负数且小于集合的大小。”C# 通过类成员将用户输入读入列表,c#,list,class,C#,List,Class,我正在努力寻找我的问题的答案,所以我不希望这是一个重复,我的坏,如果它是 我已经被设定了一个使用类的任务,这是我第一次使用类和列表,所以请原谅我的无知 我想存储通过用户输入读取到我的一个类成员(我必须在整个任务中使用这些类成员)中的数据,并将其添加到我创建的列表中。我试过很多种方法,但现在我没有主意了。程序允许我输入第一个值(make),但编译器随后抛出一个错误,说明: “mscorlib.dll中发生“System.ArgumentOutOfRangeException”类型的未经处理的异常”
专用静态车辆(车辆电机)
{
整数=1;
Console.Clear();
List MotorDeats=新列表();
控制台.Write(“///////ADDING CAR DETAILS.”;
控制台。写入(“\n\n输入Make:”);
_Motor.Make=Console.ReadLine();
MotorDeats[编号]。添加(\u Motor.Make);
Console.Write(“\n\n输入模型:”);
_Motor.Model=Console.ReadLine();
MotorDeats[number]。添加(\u Motor.Model);
控制台。写入(“\n\n输入年份:”);
_Motor.Year=Console.ReadLine();
汽车驾驶员[编号]。添加(_Motor.Year);
Console.WriteLine(string.Join(“,”,MotorDeats.Select(MotorDeat=>MotorDeats.ToString());
Console.ReadKey();
}
您不会为了添加项目而对列表编制索引。它会自动将其添加到列表的末尾。将您的列表传递到
AddCar
会更有意义,因为您丢失了车长
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();
}
这将允许您放置多个车辆我已编辑了您的标题。请参阅“”,其中的共识是“不,他们不应该”。
Vechicle v = new Vechicle();
v.Make = 'Ford';
v.Year = 1990;
v.Model = 'Sedan'
MotorDeats.Add(v);
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";
}