C#对象和集合初始化器

转载 2013年12月04日 10:05:28

对象初始化器(Object initializers 

参见:MSDN

使用对象初始值设定项可以在创建对象时向对象的任何可访问的字段或属性分配值,而无需显式调用构造函数。 下面的示例演示如何将对象初始值设定项用于命名类型 (Cat)。 请注意,在 Cat类中使用了自动实现的属性。

class Cat
{
    // Auto-implemented properties.
    public int Age { get; set; }
    public string Name { get; set; }
}
Cat cat = new Cat { Age = 10, Name = "Fluffy" };

对象初始化器和匿名类型

对象初始化器在 LINQ 查询表达式中尤其有用。 查询表达式常使用只能通过使用对象初始值设定项进行初始化的匿名类型,如下面的声明所示。
var pet = new { Age = 10, Name = "Fluffy" };
利用匿名类型,LINQ 查询表达式中的 select 子句可以将原始序列的对象转换为可能具有不同的值和形式的对象。 如果您只想存储某个序列中每个对象的部分信息,这会很有用。 在下面的示例中,假定某个产品对象 (p) 包含很多字段和方法,而您只想创建包含产品名称和单价的对象序列。
var productInfos =
    from p in products
    select new { p.ProductName, p.UnitPrice };
当执行此查询时,productInfos 变量将包含一个对象序列,而这些对象可以在 foreach 语句中访问,如下面的示例所示:
foreach(var p in productInfos){...}
新的匿名类型中的每个对象都具有两个公共属性,这两个属性具有与原始对象中的属性或字段相同的名称。 还可以在创建匿名类型时重命名字段;下面的示例将 UnitPrice 字段重命名为Price
select new {p.ProductName, Price = p.UnitPrice};

集合初始化器(Collection initializers

参见:http://blog.csdn.net/maotin/article/details/2977138
集合初始化器会对初始化器中的元素进行按序调用ICollection<T>.Add(T) 。应用集合初始化器的对象的类型必须实现了System.Collections.Generic.ICollections<T>接口并指定了确定的T。

List<int> num= new List<int> { 0, 1, 2, 6, 7, 8, 9 };

List<Customer> customers = new List<Customer>{ 
        new Customer{ID="001",Name="test001",age="28"},
        new Customer{ID="002",Name="test002",age="29"},
        new Customer{ID="003",Name="test003",age="30"} };
这和以前调用List.Add没有本质的区别,编译器自动的调用了List的无参构造方法,然后实例化一个个的Customer,再一个个的Add进去,和我们原来的做法没有什么不同,但是,这是编译器在后台自动处理,简省了我们很多的编码工作。

相关文章推荐

[C#基础知识]专题十三:全面解析对象集合初始化器、匿名类型和隐式类型

引言    经过前面专题的介绍,大家应该对C# 1和C# 2中的特性有了进一步的理解了吧,现在终于迎来我们期待已久的C# 3中特性,C# 中Lambda表达式和Linq的提出相当于彻底改变我们之...

C# 对象和集合的初始化器

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T...

C# 对象初始化器与集合初始化器的若干问题

C# 3.0 中对象初始化器(Object Initializers)  和 集合初始化器(Collection Initializers) ,就是简化我们的代码,让本来几行才能写完的代码一行写完。这...

c# 对象初始化器

创建对象什么是对象初始化器?对象在创建时也可以通过对象初始化器完成”属性的初始化”。 但是对象初始化器只在.NET3.0以后的版本中使用 !!! 只能在.NET3.0及其后续版本中使用使用以往的...

C#集合对象详解

  • 2008-07-25 14:49
  • 10KB
  • 下载

C# 对象初始化的顺序分析

C#对象初始化顺序

将form表单元素转为实体对象 或集合 -ASP.NET C#

简介: 做WEBFROM开发的同学都知道后台接收参数非常麻烦 虽然MVC中可以将表单直接转为集实,但不支持表单转为 LIST这种集合 单个对象的用法: 表单: input n...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)