3
var query = from c in customers
                join o in orders on c.ID equals o.ID
                select new { c.ID, c.City, SalesBefore = c.Sales, NewOrder = o.Amount, SalesAfter = c.Sales + o.Amount };

    foreach (var item in query)
    {
        Console.WriteLine(item);
    }

上記のコードをコンソール アプリケーションで実行していました。結果が生成されると、 に表示されます{}。結果が にあるのはなぜ{}ですか?

結果の例

{ ID=1, City=New York.....}

決定的なものは何もありません。知りたいだけです。

4

3 に答える 3

10

これは、匿名型の既定の.ToString実装です。多かれ少なかれ何もありません。

于 2013-02-26T16:43:18.163 に答える
2

そのコードは、指定されたオブジェクトのメソッドをConsole.WriteLine(object)内部で呼び出すオーバーロードを使用します。.ToString()この.ToString()メソッドは、その方法で匿名型をレンダリングします。

于 2013-02-26T16:44:21.297 に答える
1

ToStringメソッドをオーバーライドするときに選択した外観です。これは、オブジェクトがプロパティ バッグのように見えることを意味します。

于 2013-02-26T16:44:20.963 に答える