C# 通过类成员将用户输入读入列表

C# 通过类成员将用户输入读入列表,c#,list,class,C#,List,Class,我正在努力寻找我的问题的答案,所以我不希望这是一个重复,我的坏,如果它是 我已经被设定了一个使用类的任务,这是我第一次使用类和列表,所以请原谅我的无知 我想存储通过用户输入读取到我的一个类成员(我必须在整个任务中使用这些类成员)中的数据,并将其添加到我创建的列表中。我试过很多种方法,但现在我没有主意了。程序允许我输入第一个值(make),但编译器随后抛出一个错误,说明: “mscorlib.dll中发生“System.ArgumentOutOfRangeException”类型的未经处理的异常”

我正在努力寻找我的问题的答案,所以我不希望这是一个重复,我的坏,如果它是

我已经被设定了一个使用类的任务,这是我第一次使用类和列表,所以请原谅我的无知

我想存储通过用户输入读取到我的一个类成员(我必须在整个任务中使用这些类成员)中的数据,并将其添加到我创建的列表中。我试过很多种方法,但现在我没有主意了。程序允许我输入第一个值(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";
}