2

私は、本の著者、出版年、本の名前を含む、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);

    }
}

ここに、本のリストを作成したメインのコードがあります。

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 に答える