这种匿名类型如何在现实生活中有用?为什么匿名是好事?
// sampleObject is an instance of a simple anonymous type.
var sampleObject =
new { FirstProperty = "A", SecondProperty = "B" };
这种匿名类型如何在现实生活中有用?为什么匿名是好事?
// sampleObject is an instance of a simple anonymous type.
var sampleObject =
new { FirstProperty = "A", SecondProperty = "B" };
来自 MSDN匿名类型(C# 编程指南):
匿名类型通常用于查询表达式的 select 子句,以返回源序列中每个对象的属性子集。
...
最常见的场景是使用其他类型的属性初始化匿名类型。
有关更多信息,您可以阅读查询表达式中的匿名类型。
另外,考虑阅读SO 匿名类型的目的是什么?
考虑How to: Join by Using Composite Keys (C# Programming Guide) 中的一个示例:
var query = from o in db.Orders
from p in db.Products
join d in db.OrderDetails
on new { o.OrderID, p.ProductID }
equals new { d.OrderID, d.ProductID }
into details
from d in details
select new { o.OrderID, p.ProductID, d.UnitPrice };
此示例说明如何执行要使用多个键来定义匹配项的连接操作。这是通过使用复合键来完成的。您可以将复合键创建为匿名类型或命名类型,并使用要比较的值。
以及使用匿名类型对 dara 进行分组以封装包含多个值的键的示例,该键使用 LINQ to SQL 中的匿名类型按多列分组:
var months = from t in db.TransactionData
group t by new { month = t.Date.Month, year = t.Date.Year }
into d
select new { t.Key.month, t.Key.year };
使用匿名类型是因为不需要使用完整的对象来显示结果
请注意,匿名类型中的属性成为 Key 成员上的属性,并且可以在执行查询时按名称访问。
通常,当您使用匿名类型初始化变量时,您使用 var 将变量声明为隐式类型的局部变量。不能在变量声明中指定类型名称,因为只有编译器才能访问匿名类型的基础名称。有关 var 的更多信息,请参阅隐式类型局部变量(C# 编程指南)。