2011-05-27 45 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}; 

這是完全有效的。