2016-11-19 76 views
-4

我想列出所有类对象。我用'new'标签创建了一堆对象。在代码中展示给你更容易。列出所有类对象

static void Main(string[] args) 
{ 
    releaseitem trk1 = new releaseitem("ARTIST", "TRACK 01", "2014"); 
    releaseitem trk2 = new releaseitem("ARTIST", "TRACK 02", "2016"); 
    releaseitem trk3 = new releaseitem("ARTIST", "TRACK 03", "2012"); 
    releaseitem trk4 = new releaseitem("ARTIST", "TRACK 04", "2011"); 

    Console.WriteLine("ID\t\t\tArtist\t\tTitle\t\t\tRelease Year"); 
    Console.WriteLine("-----------------------------------------------------------"); 
    trk1.getDetails(); 
    trk2.getDetails(); 
    trk3.getDetails(); 
    trk4.getDetails(); 
} 

你看,在那一刻,我必须单独获得每首歌曲的细节,它显示了这样的:

enter image description here

不过,我很快就要使它所以用户可以输入他们自己的数据,并且我想这样做以便当用户键入“全部列出”时,它将以屏幕截图中所示的方式显示所有曲目。我会告诉你什么是在releaseitem类,但我不知道我有没有改变任何东西有:

public class releaseitem 
{ 
    private string artist = ""; 
    private string title = ""; 
    private string releaseyear = ""; 
    private string id = ""; 

    public releaseitem(string artist, string title, string releaseyear) 
    { 
     this.artist = artist; 
     this.title = title; 
     this.releaseyear = releaseyear; 
     idTracker.nextId += 1; 
     id = "REL-" + (idTracker.nextId).ToString().PadLeft(4, '0'); 
    } 

    public void getDetails() 
    { 
     Console.WriteLine("{0}\t\t{1}\t\t{2}\t\t{3}", id, artist, title, releaseyear); 
    } 
} 

忽略使用“私有”的,我对之差不知道公共和私人,但哈哈。

+0

我不会说超过[C#列表](https://msdn.microsoft.com/en-us/library/6sh2ey19(v = vs.110).aspx),祝你好运! – martijnn2008

回答

0

您可以使用List来保存类的列表(或任何数量的不同集合)。

要做到这一点,你可以做这样的事情:

List<releaseitem> myList = new List<releaseitem>() 
{ 
    new releaseitem("ARTIST", "TRACK 01", "2014"), 
    new releaseitem("ARTIST", "TRACK 02", "2016"), 
    new releaseitem("ARTIST", "TRACK 03", "2012"), 
    new releaseitem("ARTIST", "TRACK 04", "2011") 
}; 

foreach (releaseitem item in myList) 
    item.getDelails(); 

你当然会需要某种类型的用户界面,或至少一种方法来新项目添加到列表中,但可以看看像:

releaseitem newReleaseItem = new releaseItem("entered artist", "track number", "year"); 
myList.Add(newReleaseItem); 

也注意到,你应该保持数据类型相似,他们的数据越好,像year也许应该是一个int,如果不是实际datetime的,你可以从中提取今年的发布日期。

1

看一看类List<T>你可以使用这样的:

releaseitem trk1 = new releaseitem("ARTIST", "TRACK 01", "2014"); 

var list = new List<releaseitem>(); 
list.Add(trk1); 

foreach (var item in list) 
{ 
    item.getDetails(); 
} 

使用list.Add添加更多的项目到列表中; -loop将输出迄今为止存储的所有项目。

+0

谢谢,它工作!要添加用户现在添加自己的数据的能力! – Krilium