2013-08-05 129 views
3

我有以下兩個類;將列表轉換爲逗號分隔的MySQL插入語句

public class CarModels 
{ 
    public List<Model> Model{ get; set; } 

    public CarModels() 
    { 
     Model = new List<Model>(); 
    } 
} 

public class Model 
{ 
    public int ModelId { get; set; } 
    public string Name { get; set; } 
    public bool Enabled{ get; set; } 
} 

我怎樣才能提取數據到像

的格式(ModelId,名稱,啓用),(ModelId,名稱,啓用),(ModelId,名稱,啓用)等

+0

查看如何使用'string.Join'方法 – MethodMan

+0

您打算編寫自己的數據層嗎? – Stijn

+0

是的Stijn,我知道。 – Tommassiov

回答

4
String.Join(",", models.Select(m => String.Format("({0},{1},{2})", m.ModelId, m.Name, m.Enabled))); 

這會給你帶有FalseTrue的字符串作爲啓用值。如果您想要EnabledDisabled,則在格式化模型字符串時使用:m.Enabled ? "Enabled" : "Disabled"


全部樣品(具有NBuilder用於創建樣本模型):

IEnumerable<Model> models = Builder<Model>.CreateListOfSize(3).Build(); 
Func<Model, string> formatModel = 
    m => String.Format("({0},{1},{2})", m.ModelId, m.Name, m.Enabled); 
string result = String.Join(",", models.Select(formatModel)); 

輸出:

(1,NAME1假),(2,NAME2真), (3,NAME3,FALSE)

0

試試這個:

var models = carModels.Model.Aggregate<Model, string>("", (s, m) => 
{ 
    return s + String.Format(",({0},{1},{2})", m.ModelId, m.Name, m.Enabled); 
}).Substring(1); 
相關問題