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

這將允許你把多個車輛