2009-11-17 81 views
2

所以這裏是我的問題...如何實例化在運行時確定的一定數量的對象?

比方說,我有一個簡單的「人」類與「名字」和「姓氏」屬性。

我想要一個表格,用戶說他想創建多少「人」,然後他填寫每個人的名字。

E.g.用戶想要創建20個人......他將20放在一個框上點擊按鈕並開始寫名字。

我不知道他有多少用戶去創造,所以我不能有數百個對象變量在我的代碼是這樣

Person p1; 
Person p2; 
(...) 
Person p1000; 

回答

4

只需使用一個

List<Person> lstPersons = new List<Person>(); 

,然後加入人將它與:

lstPersons.Add(new Person()); 

然後,您可以訪問的人與

lstPersons[0] 
lstPersons[1] 
... 
+0

謝謝...這是非常簡單的解決方案。我的大腦讓它變得複雜。 – 2009-11-17 10:43:07

+0

值得注意的是,用戶描述的問題不需要使用數組上的動態列表。除非有其他需要動態列表的要求,否則數組的性能會稍微高一點(儘管不是重要的,所以如果您比列表更適合使用列表,則可以繼續)。 – Chris 2009-11-17 10:44:56

+0

是的,你是對的,但性能開銷可以忽略不計。我總是喜歡在數組上使用列表,因爲如果稍後需要更改它,它可以節省我的工作量。我認爲,對於幾千個訪問列表,簡單的維護比幾毫秒更好的性能更重要。 – 2009-11-17 11:05:51

2

您需要使用a list。創建列表此VAY:

var persons=new List<Person>(); 

,你可以動態地添加的項目是這樣的:

Person thePerson=new Person(...); 
persons.Add(thePerson); 
0

你可能想用一個集合Person對象。嘗試尋找這些鏈接

3

創建一個數組,大小以任何數量的用戶輸入。然後你可以循環遍歷數組來實例化它們。

int numberOfPeople = xxx; // Get this value from the user's input 
Person[] people = new Person[numberOfPeople]; 
for (int i = 0; i < people.Length; i++) 
    people[i] = new Person(); 
相關問題