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 回答