C#:匿名类型和属性名称

时间:2009-02-13 09:10:30

标签: c# linq anonymous-types

这之间是否有任何区别:

dataContext.People.Select(ø => new
{
     Name = ø.Name,
});

和此:

dataContext.People.Select(ø => new
{
     ø.Name,
});

3 个答案:

答案 0 :(得分:6)

它们是相同的;如果未指定名称(并且右侧是简单的成员访问),则假定现有成员的名称。该名称仅用于:

  • 将名称更改为 else (例如Name = grp.Key
  • 为非成员访问表达式(例如Count = grp.Count()
  • 指定名称

答案 1 :(得分:1)

没有。第二个只是为你导出属性的名称,生成的实际代码是相同的。

答案 2 :(得分:1)

不,编译器会将匿名类型的属性命名为与赋值右侧相同。