linq结果中的{}

本文关键字:结果 linq | 更新日期: 2023-09-27 18:01:08

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.....}

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

linq结果中的{}

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

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

这只是他们在重写ToString方法时选择的外观。这确实意味着该对象看起来像一个属性包,基本上就是它的样子。