2011-05-27 46 views
1

我可以使用像一个简洁的方式初始化类:简洁的方式来初始化集合

public static readonly type TYPE_NAME = new type() 
     { 
      ClientIp = "ClientIp", 
      LanguageCode = "LanguageCode", 
      SessionToken = "SessionToken", 
      SystemKey = "SystemKey" 
     }; 

但是是可以初始化集合以类似的方式(从List<>继承)?

+0

当然,请参阅:http://msdn.microsoft.com/en-us/library/bb384062.aspx – 2011-05-27 13:49:48

回答

8
List<string> strList = new List<string>{ "foo", "bar" }; 

List<Person> people = new List<Person>{ 
           new Person { Name = "Pete", Age = 12}, 
           new Person { Name = "Jim", Age = 15} 
         }; 
+0

http://haacked.com/archive/2008/01/06/collection-initializers.aspx – asawyer 2011-05-27 13:50:19

0

是:

var l = new List<int>() { 1, 1, 2, 3, 5 }; 
0

你一定能使用集合初始化。 要使用此,

List<int> collection= List<int>{1,2,3,...}; 

要使用集合初始化它不必是完全列表类型的。 集合初始值设定项可用于那些实现IEnumerable的类型,并且有一个公开的Add方法。

即使在以下类型中使用集合初始值设定项功能。

public class SomeUnUsefulClass:IEnumerable 
    { 
     public IEnumerator GetEnumerator() 
     { 
      throw new NotImplementedException(); 
     } 
     public void Add(int i) 
     { 
      //It does not do anything. 
     } 
    } 

一样,

SomeUnUsefulClass cls=new SomeUnUsefulClass(){1,2,3,4,5}; 

这是完全有效的。