2014-07-18 61 views
0

ListOfComment爲對象的List<Comment>財產,什麼是做到這一點的最佳方式:是否有可能在內聯對象聲明中使用循環?

     ListOfComment = new List<Comment> 
         { 
          foreach(object a in b) 
          { 
           new Comment 
           { 
            Type = "", 
            Description = "" 
           } 
          } 
         } 
+4

你爲什麼不簡單地嘗試編譯它?你已經花了更多的時間來弄這篇文章,然後試圖做compialtion。 – Tigran

+0

將它放在集合初始化器之外,並簡單地使用'ListOfComment.Add()'? –

+0

@JeroenVannevel這屬於答案,而不是評論。但請注意,該問題具有'ListOfComment'作爲屬性,因此,屬性設置器會看到一個空列表並可能在調用者需要之前對其執行操作。 – hvd

回答

8

直接,但你可以這樣做:

ListOfComment = b.Select(a => new Comment { 
    Type = "", 
    Description = "" 
}).ToList(); 

或者:

ListOfComment = (from a in b 
       select new Comment { 
        Type = "", 
        Description = "" 
       }).ToList(); 

或:

ListOfComment = new List<Comment>(b.Select(a => new Comment { 
    Type = "", 
    Description = "" 
})); 

或:

ListOfComment = new List<Comment>(
    from a in b 
    select new Comment { 
     Type = "", 
     Description = "" 
    }); 
2

可能是使用LINQ:

ListOfComment = b.Select(a => new Comment{ Type="", Description=""}).ToList(); 
0

這是不可能的對象聲明中,你可以做到這一點

var comments = (from a in b 
       select new Comment 
       { 
        Type = "", 
        Description = ""; 
       }).ToList(); 

你可以做的就是這個(具有固定數量的條目)

var comments = new List<Comment>() 
{ 
    new Comment { Type= "", Description = "" }, 
    new Comment { Type= "", Description = "" }, 
}; 
相關問題