我想创建一个arraylist,其中我将存储描述mp3播放器的结构,我想在for循环中访问所述参数,以便我可以在Console中打印出来。
我的问题是访问for循环中的参数,有人能指出我正确的方向吗?
这也是作业,所以arraylist和struct是必需的。
static public void mp3speler()
{
mp3 speler1 = new mp3(1, 1, "a", "b", "c");
mp3 speler2 = new mp3(2, 1, "a", "b", "c");
mp3 speler3 = new mp3(3, 1, "a", "b", "c");
mp3 speler4 = new mp3(4, 1, "a", "b", "c");
mp3 speler5 = new mp3(5, 1, "a", "b", "c");
ArrayList mp3Array = new ArrayList();
mp3Array.Add(speler1);
mp3Array.Add(speler2);
mp3Array.Add(speler3);
mp3Array.Add(speler4);
mp3Array.Add(speler5);
for (int i = 0; i < mp3Array.Count; i++)
{
string placeHolder = "0"; //= ((mp3)mp3Array[0].ID);
Console.WriteLine(@"MP3 Speler {0}
Make: {1}
Model: {2}
MBSize: {3}
Price: {4}", placeHolder, placeHolder, placeHolder, placeHolder, placeHolder);
}
}
struct mp3
{
public int ID, MBSize;
public string Make, Model, Price;
public mp3(int ID, int MBSize, string Make, string Model, string Price)
{
this.ID = ID;
this.MBSize = MBSize;
this.Make = Make;
this.Model = Model;
this.Price = Price;
}
}
答案 0 :(得分:4)
使用通用List<T>
代替ArrayList
。每次添加或从集合中获取项目时,它都会阻止您的结构打包/取消装箱。
List<mp3> mp3List = new List<mp2>();
mp3List.Add(speler1);
mp3List.Add(speler2);
mp3List.Add(speler3);
mp3List.Add(speler4);
mp3List.Add(speler5);
使用索引器访问权限从List<T>
for (int i = 0; i < mp3List.Count; i++)
{
Console.WriteLine(@"MP3 Speler {0} Make: {1} Model: {2} MBSize: {3} Price: {4}",
mp3List[i].ID, mp3List[i].Make, mp3List[i].Model, mp3List[i].MbSize, mp3List[i].Price);
}
您也可以使用foreach
代替for
:
foreach (var item in mp3List)
{
Console.WriteLine(@"MP3 Speler {0} Make: {1} Model: {2} MBSize: {3} Price: {4}",
item.ID, item.Make, item.Model, item.MbSize, item.Price);
}