所以這裏是我的問題...如何實例化在運行時確定的一定數量的對象?
比方說,我有一個簡單的「人」類與「名字」和「姓氏」屬性。
我想要一個表格,用戶說他想創建多少「人」,然後他填寫每個人的名字。
E.g.用戶想要創建20個人......他將20放在一個框上點擊按鈕並開始寫名字。
我不知道他有多少用戶去創造,所以我不能有數百個對象變量在我的代碼是這樣
Person p1;
Person p2;
(...)
Person p1000;
所以這裏是我的問題...如何實例化在運行時確定的一定數量的對象?
比方說,我有一個簡單的「人」類與「名字」和「姓氏」屬性。
我想要一個表格,用戶說他想創建多少「人」,然後他填寫每個人的名字。
E.g.用戶想要創建20個人......他將20放在一個框上點擊按鈕並開始寫名字。
我不知道他有多少用戶去創造,所以我不能有數百個對象變量在我的代碼是這樣
Person p1;
Person p2;
(...)
Person p1000;
只需使用一個
List<Person> lstPersons = new List<Person>();
,然後加入人將它與:
lstPersons.Add(new Person());
然後,您可以訪問的人與
lstPersons[0]
lstPersons[1]
...
您需要使用a list。創建列表此VAY:
var persons=new List<Person>();
,你可以動態地添加的項目是這樣的:
Person thePerson=new Person(...);
persons.Add(thePerson);
你可能想用一個集合Person對象。嘗試尋找這些鏈接
創建一個數組,大小以任何數量的用戶輸入。然後你可以循環遍歷數組來實例化它們。
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();
謝謝...這是非常簡單的解決方案。我的大腦讓它變得複雜。 – 2009-11-17 10:43:07
值得注意的是,用戶描述的問題不需要使用數組上的動態列表。除非有其他需要動態列表的要求,否則數組的性能會稍微高一點(儘管不是重要的,所以如果您比列表更適合使用列表,則可以繼續)。 – Chris 2009-11-17 10:44:56
是的,你是對的,但性能開銷可以忽略不計。我總是喜歡在數組上使用列表,因爲如果稍後需要更改它,它可以節省我的工作量。我認爲,對於幾千個訪問列表,簡單的維護比幾毫秒更好的性能更重要。 – 2009-11-17 11:05:51