【问题标题】:LINQ: Difference between "select new {e.FName, e.LName}" and "select (e.FName, e.LName)"? [duplicate]LINQ:“select new {e.FName, e.LName}”和“select (e.FName, e.LName)”之间的区别? [复制]
【发布时间】:2021-04-26 14:40:05
【问题描述】:

这两个查询有什么区别?

var query = from e in people
                select (e.FName,e.LName);

var query = from e in people
                select new {e.FName,e.LName};

【问题讨论】:

  • 运行每个查询并将鼠标光标悬停在query 变量上。 Visual Studio 会告诉你每个查询返回的类型是什么。
  • 第一个选择ValueTuple,第二个选择anonymous object
  • (a, b) 是一个元组,而new {a, b} 是一个匿名对象
  • @JohnathanBarclay:在 .NET 4.7 之前会发生什么?文档指出ValueTuple 是在 .NET 4.7 中引入的。
  • 这能回答你的问题吗? Select vs Select new in linq

标签: c# linq anonymous-types


【解决方案1】:

第一个返回IEnumerable<ValueTuple<string, string>>(参见ValueTuple),第二个返回IEnumerable<>anonymous type

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多