2013-02-26 50 views
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); 
    } 

我跑上述控制台应用程序的代码。当它生成结果时,它将显示在{}中。为什么在{}的结果?{}在LINQ结果

结果示例

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

没有什么至关重要。只是好奇知道。

回答

10

这只是默认.ToString实现匿名类型。没有更多或更少。

1

这只是他们在覆盖ToString方法时选择的样子。这确实意味着物体看起来像一个物业包,这基本上就是它的原型。

2

该代码使用Console.WriteLine(object)过载,该过载在引用的对象上调用.ToString()方法。反过来,.ToString()方法以这种方式呈现匿名类型。