2010-11-19 192 views
2

我知道我可以做這樣的事情:創建匿名類型!

var test = new { FirstName = string.Empty, LastName = string.empty }; 

但我不,如果有一種方法可以動態地做到這一點,讓我們說:

var test = new {}; 
if (condition) { 
    test.Property = string.Empty; 
} 

比方說,我有這樣的:

string[] names = 
{ 
    "eder", 
    "quiñones", 
    "quoe840629", 
    "3301" 
}; 

var anonymous = new {}; 
foreach (string name in names) { 
    // Create anonymous types... 
} 

有什麼建議嗎?

〜埃德爾醌

回答

7

你可以這樣做:

var test = new { FirstName = (condition ? string.Emtpy : "other") }; 

如果您正在使用C#4你可以使用一個dynamic型(ExpandoObject)。

+0

假設我必須根據對象列表的大小而不是有條件地創建對象! – Eder 2010-11-19 18:20:10

+0

N個屬性取決於我的列表大小。 – Eder 2010-11-19 18:21:38

+0

你的列表的動態如何。它可以是任何東西,或者列表可以有預定義的一組屬性? – genericuser 2010-11-19 18:48:04