在LINQ中使用自治类型

问题描述 投票:0回答:1

将名称分配给自治类型有哪些优点/缺点?在下面的示例中...

    var cust = new Customer { Name = "Mike", Phone = "555-1212" };
    ....
    var newLargeOrderCustomers = from o in IncomingOrders
                                 where o.OrderSize > 5
                                 select new Customer
                                 {
                                   o.Name,
                                   Phone = o.Phone
                                 };

我可以使用o.dataElement或分配的名称(例如,DataElementName = o.dataElement)来引用数据元素。

除了获得可读性以外,最好是直接使用o.dataElement(例如o.Name)引用数据元素,还是间接使用分配的DataElementName(例如Phone)引用数据元素?

c# linq query-performance
1个回答
0
投票

使用此语法:

var cust = new Customer { Name = "Mike", Phone = "555-1212" };

您已指定"Mike"进入NameCustomer属性,而"555-1212"进入Phone的属性。

但是对象初始化语法有一个捷径:如果从中分配的表达式是一个属性,则C#会假设您是要将该表达式分配给相同的属性。例如:

var clonedCust = new Customer { cust.Name, cust.Phone };

您是否明确告诉C#目的地应该为Name属性,这没有区别。

(WIP-我想检查生成的表达式树是否相同。)

© www.soinside.com 2019 - 2024. All rights reserved.