C# 如何将具有自定义数据类型的列表获取到字符串生成器?

C# 如何将具有自定义数据类型的列表获取到字符串生成器?,c#,list,class,.net-3.5,C#,List,Class,.net 3.5,我有课 public class IdDetails { public string transactionDate { get; set; } public string upnName { get; set; } public string movementTrade { get; set; } public string baseCurve { get; set; } public string cTolerance { get; set; }

我有课

public class IdDetails
{
    public string transactionDate { get; set; }
    public string upnName { get; set; }
    public string movementTrade { get; set; }
    public string baseCurve { get; set; }
    public string cTolerance { get; set; }
    //17 more declarations below
}
然后我使用它作为列表接口的数据类型

我试过这个。然而,我认为它是由字符串组成的,每个项目中都有一个数据,我不知道这方面的实际术语

我试着用我的推荐信来做这件事

var x = concatenate<IdDetails>(Interface, Convert.ToString, ';');
但我没有得到我需要的结果,相反,我得到的是价值观

//output im getting
x = "DataImport2.IdDetails;" //<- this string repeated multiple times
问题:如何将自定义列表的内容直接写入字符串生成器?不用我把它转换成另一个物体。因为我可以将其转换为DataTable并将其处理为StringBuilder。这是一个相当长的过程和编码

希望有人能帮助我。

您可以使用string。加入以实现您的需要。比如说

string.Join(",", Interface.Select(item => item.transactionDate + " " + item.xxx + // etc etc));
编辑:

重写IdDetails中的ToString以使用反射获取类的所有值

public class IdDetails
{
    public string transactionDate { get; set; }
    public string upnName { get; set; }
    public string movementTrade { get; set; }
    public string baseCurve { get; set; }
    public string cTolerance { get; set; }

    private static string SafeString(object s)
    {
        return s == null ? string.Empty : s.ToString();
    }

    public override string ToString()
    {
        PropertyInfo[] properties = typeof(IdDetails).GetProperties();
        return string.Join(",", properties.Select(prop => SafeString(prop.GetValue(this, null))).ToArray());
    }

    //17 more declarations below
}

是否需要循环或缩短代码项。transactionDate等?因为它是一个相当长的类,根据需要可能更长。我要做的是重写IdDetails ToString以返回我想要的属性值。然后使用以下字符串。Join,,Interface.Selectitem=>item.ToString;您能告诉我如何将其重写为字符串吗?代码已更新。现在将使用类中的所有属性。您不必手动编写代码。我在string.Join;,上有一个错误;,properties.Selectprop=>prop.GetValuethis,null;
public class IdDetails
{
    public string transactionDate { get; set; }
    public string upnName { get; set; }
    public string movementTrade { get; set; }
    public string baseCurve { get; set; }
    public string cTolerance { get; set; }

    private static string SafeString(object s)
    {
        return s == null ? string.Empty : s.ToString();
    }

    public override string ToString()
    {
        PropertyInfo[] properties = typeof(IdDetails).GetProperties();
        return string.Join(",", properties.Select(prop => SafeString(prop.GetValue(this, null))).ToArray());
    }

    //17 more declarations below
}