本文向大家介绍Linq对象初始值,可能好多人还不了解Linq对象初始值,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。
Linq对象初始值
为解决这一问题,即将发布的“Orcas”版本提供了一种被称为Linq对象初始值的 C# 语言功能。Linq对象初始值主要允许在单一表达式中为多个属性或字段赋值。例如,创建对象的常见模式是:
- Customer customer = new Customer();
- customer.Name = “Roger”;
- customer.Address = “1 Wilco Way”;
此时,Customer 没有可以接受名称和地址的构造函数;但是存在两个属性,即 Name 和 Address,当创建实例后即可设置它们。Linq对象初始值允许使用以下语法创建相同的结果:
- Customer customer = new Customer()
{ Name = “Roger”, Address = “1 Wilco Way” };
在我们前面的 CustomerTuple 示例中,我们通过调用其构造函数创建了 CustomerTuple 类。我们也可以通过Linq对象初始值获得同样的结果:
- var locals = customers.Where(c => c.ZipCode == 91822).Select(c =>
new CustomerTuple { Name = c.Name, Address = c.Address });
请注意,Linq对象初始值允许省略构造函数的括号。此外,字段和可设置的属性均可在Linq对象初始值的主体内部进行赋值。
我们现在已经拥有在 C# 中创建查询的简洁语法。尽管如此,我们还有一种可扩展途径,可通过扩展方法以及一组本身非常有用的语言功能来添加新的运算符(Distinct、OrderBy、Sum 等)。
语言设计团队现在有了数种可赖以获得反馈的原型。因此,我们与许多富于 C# 和 SQL 经验的参与者组织了一项可用性研究。几乎所有反馈都是肯定的,但明显疏忽了某些东西。具体而言,开发人员难以应用他们的 SQL 知识,因为我们认为理想的语法与他们擅长领域的专门技术并不很符合。
【编辑推荐】