2014-10-28 57 views
1

我很努力地找到我的问题的答案在任何地方,所以我不认为这是一个重复的,我的坏,如果是!通过班级成员阅读用户输入列表

我已经设置了一个任务使用类,这是我第一次使用类&列表,所以原谅我的无知。

我想通过用户输入将已读取的数据存储到我的类成员之一(我必须在整个任务中使用类成员),并将其添加到我创建的列表中。我尝试了很多方法,但现在我没有想法。该方案是让我进入的第一个值(化妆),但是编译器会引发错误说:

“类型‘System.ArgumentOutOfRangeException’的unhanded异常出现在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

我编辑了自己的冠军。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 – 2014-10-28 23:14:53

回答

2
Vechicle v = new Vechicle(); 
v.Make = 'Ford'; 
v.Year = 1990; 
v.Model = 'Sedan' 
MotorDeats.Add(v); 

你不索引列表,以添加项目。它会自动将其添加到列表的末尾。

+0

非常感谢! – COYG 2014-10-28 22:56:19

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"; 
} 

这将允许你把多个车辆