简体   繁体   English

将列表转换为逗号分隔的MySQL插入语句

[英]Convert List To Comma Separated MySQL Insert Statements

I've the following two classes; 我有以下两个班级;

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; }
}

How can I extract the data into the format like 如何将数据提取为如下格式

(ModelId,Name,Enabled),(ModelId,Name,Enabled),(ModelId,Name,Enabled) etc (ModelId,Name,Enabled),(ModelId,Name,Enabled),(ModelId,Name,Enabled)等

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

That will give you string with False and True as Enabled values. 这将为您提供FalseTrue作为Enabled值的字符串。 If you want Enabled and Disabled instead, then use: m.Enabled ? "Enabled" : "Disabled" 如果您想要EnabledDisabled ,请使用: m.Enabled ? "Enabled" : "Disabled" m.Enabled ? "Enabled" : "Disabled" when formatting model string. 格式化模型字符串时m.Enabled ? "Enabled" : "Disabled"


Full sample (with NBuilder used to create sample models): 完整样本(使用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));

Output: 输出:

(1,Name1,False),(2,Name2,True),(3,Name3,False) (1,NAME1假),(2,NAME2真),(3,NAME3,假)

Try this: 试试这个:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM