2

我有一堂书课,里面有几本书,有书作者、出版年份和书名。现在我想使用循环打印出书籍,但我不确定我应该使用什么循环。这是我的书类代码:

class Book
{
    public string forfattareEfternamn;
    public string forfattareFornamn;
    public string bokensTittle;
    public int lanseringsDatum;

    public string BokensTittle
    {
        get { return bokensTittle; }
        set { bokensTittle = value; }
    }
    public string ForfattareFornamn
    {
        get {return forfattareFornamn;}
        set {forfattareFornamn = value;}
    }

    public string ForfattareEfternamn
    {
        get {return forfattareEfternamn;}
        set {forfattareEfternamn = value;;}
    }

    public int LanseringsDatum
    {
        get { return lanseringsDatum; }
        set { lanseringsDatum = value; }
    }

    public override string ToString()
    {
        return string.Format("{0}, {1}, {2}, {3} ", forfattareEfternamn, ForfattareFornamn, bokensTittle, lanseringsDatum);

    }
}

这是 Main 中的代码,我在其中创建了我的书单:

class Program
{
    static void Main(string[] args)
    {
        List<Book> books = new List<Book>();
        books.Add(new Book { forfattareFornamn = "Dumas", forfattareEfternamn = "Alexandre", bokensTittle = "The Count Of Monte Cristo", lanseringsDatum = 1844 });
        books.Add(new Book { forfattareFornamn = "Clark", forfattareEfternamn = "Arthur C", bokensTittle = "Rendezvous with Rama", lanseringsDatum = 1972 });
        books.Add(new Book { forfattareFornamn = "Dumas", forfattareEfternamn = "Alexandre", bokensTittle = "The Three Musketeers", lanseringsDatum = 1844 });
        books.Add(new Book { forfattareFornamn = "Defoe", forfattareEfternamn = "Daniel", bokensTittle = "Robinson Cruise", lanseringsDatum = 1719 });
        books.Add(new Book { forfattareFornamn = "Clark", forfattareEfternamn = "Arthur C", bokensTittle = "2001: A space Odyssey", lanseringsDatum = 1968 });

    }
}

所以,我想使用一个循环,使用 ToString() 方法在控制台屏幕上打印列表中的书籍(不显式调用 ToString())

4

3 回答 3

3
foreach(Book b in books)
    Console.WriteLine(b);

ToString 被 WriteLine 自动调用(啊,多态性......)

于 2013-02-24T20:21:37.673 回答
2

使用 foreach 循环遍历集合中出现的书籍数量。然后将它们打印到控制台。

foreach (Book book in books)
{
    Console.WriteLine(book.ToString()); // ToString gets called automatically so you can skip that if you want. I think it makes it a little clearer when reading it again.
}

希望能帮助到你。

于 2013-02-24T20:24:03.157 回答
2

如果您在项目中包含对 System.Linq 的引用,则可以使用:

books.ForEach(b => Console.WriteLine(b))

您甚至可以将其缩短为:

books.ForEach(Console.WriteLine)
于 2013-02-24T20:24:20.503 回答