列出所有类对象

时间:2016-11-19 12:40:57

标签: c# list

我想要列出列表中的所有类对象。我用“' 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

但是,我很快就会这样做,以便用户可以输入他们自己的数据,我想这样做,以便当用户键入"全部列出"时,它显示所有轨道,以截图中显示的方式。我将向您展示发布项目中的内容,但我不确定我是否必须在那里更改任何内容:

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);
    }
}

忽略私人'的使用,我不知道公共和私人的差异,哈哈。

2 个答案:

答案 0 :(得分: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向列表中添加更多项目; foreach - 循环将输出您目前存储的所有项目。

答案 1 :(得分: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可以从中提取年份。