2013-08-05 126 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); 
相关问题