这种匿名类型在现实生活中如何有用?为什么要成为anoynimous很好?
// sampleObject is an instance of a simple anonymous type.
var sampleObject =
new { FirstProperty = "A", SecondProperty = "B" };
答案 0 :(得分:3)
来自MSDN Anonymous Types (C# Programming Guide):
匿名类型通常用在查询的select子句中 表达式从中返回每个对象的属性子集 源序列。
...
最常见的情况是使用初始化匿名类型 另一种类型的属性。
如需了解更多信息,请阅读Anonymous Types in Query Expressions。
另外,请考虑阅读SO What is the purpose of anonymous types?
考虑来自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进行分组以封装包含来自Group by Multiple Columns using Anonymous Types in 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 };
或beter How to: Group Query Results (C# Programming Guide):
使用匿名类型,因为没有必要使用 完整对象以显示结果
请注意,匿名类型中的属性将成为属性 Key成员,可以在执行查询时按名称访问。
答案 1 :(得分:1)
通常,当您使用匿名类型初始化变量时,可以使用var将变量声明为隐式类型的局部变量。无法在变量声明中指定类型名称,因为只有编译器才能访问匿名类型的基础名称。有关var的更多信息,请参阅Implicitly Typed Local Variables (C# Programming Guide)。