其實,我有這樣的:C#如何創建一個動態列表/陣列
public ArrayList _albumId;
public ArrayList _albumName;
public ArrayList _nbPhotos;
當我有一個新的專輯,我想補充每個ArrayList的一條線。 只有一個列表或數組,你知道一件事嗎? 謝謝
其實,我有這樣的:C#如何創建一個動態列表/陣列
public ArrayList _albumId;
public ArrayList _albumName;
public ArrayList _nbPhotos;
當我有一個新的專輯,我想補充每個ArrayList的一條線。 只有一個列表或數組,你知道一件事嗎? 謝謝
首先,不要使用ArrayList
- 使用通用List<T>
。
二 - 不必爲專輯的每一個屬性單獨的列表,創建Album
類所需的所有屬性,並保持張專輯List<Album>
:
public class Album
{
public int Id { get; set; }
public string Name {get; set; }
public int CountOfPhotos {get; set; }
}
添加新專輯:
_albums.Add(new Album { Id = 2, Name = "Foo", CountOfPhotos = 42 });
在哪裏宣佈爲專輯列表
List<Album> _albums = new List<Album>();
爲什麼要將關於同一事物的信息分解爲多個數組?
創建一個Album
對象。喜歡的東西:
public class Album
{
public int ID { get; set; }
public string Name { get; set; }
// other properties, etc.
}
而且有專輯列表:
var albums = new List<Album>();
當添加了新專輯,添加一個新相冊:
var newAlbum = new Album
{
ID = someValue,
Name = anotherValue
}
albums.Add(newAlbum);
保持約封裝對象的信息在那個對象中,沒有散佈在其他斷開連接的變量中。
作爲一個比喻,考慮在停車場停車的行爲。通過收集物品,停車場擁有一系列空間,每輛車進入一個空間。相反,使用單獨的數值陣列,停放汽車的過程如下:
建模封裝對象只是更有意義。
使用通用列表。
定義一個類,用於smaple:
public class Album
{
public int Id { get; set; }
public string Name { get; set; }
public string[] AlbumPhotos { get; set; }
}
,並且在一般列表中使用它:
var albums = new List<Album>();
albums.Add(new Album() { Id = 1, Name = "Ramones" };
albums.Add(new Album() { Id = 2, Name = "Leave Home" };
albums.Add(new Album() { Id = 3, Name = "Rocket To Russia" };
這將是更好地爲您使用通用'List'而不是'ArrayList' 。 'List'具有類型安全性。 –
創建一個三個字段,然後列表的類專輯 –
TaW
不應該讓相冊成爲具有這些屬性的類,然後您可以有列表? –