如何将具有自定义数据类型的列表获取到字符串生成器?
How can I get the List with a custom datatype to a string builder?
我有一个class。
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
}
然后我将它用作我的列表的数据类型Interface
foreach(DataRow r in tbl1.Rows)
{
InterFace.Add(new IdDetails
{
transactionDate = Convert.ToDateTime(r["TransDate"]).ToString(@"MM/dd/yyyy"),
upnName = string.Empty
movementTrade = "incoming",
//... Somemore adding of values
}
}
我试过这个reference。但是,我认为它是在每个项目中使用单个数据构建的字符串。我不知道这个的实际术语
我已经尝试使用我的参考资料来这样做
var x = concatenate<IdDetails>(Interface, Convert.ToString, ';');
但我没有得到我需要的结果,相反我得到了值
//output im getting
x = "DataImport2.IdDetails;" //<- this string repeated multiple times
问题:如何直接将自定义列表的内容写入字符串生成器?无需我将其转换为另一个对象。因为我可以将其转换为 DataTable
并将其处理为 StringBuilder
。这是一个相当长的过程和编码。
希望有人能帮助我。
您可以使用string.Join()
来实现您所需要的。例如
string.Join(",", Interface.Select(item => item.transactionDate + " " + item.xxx + // etc etc));
编辑:
覆盖 IdDetails
中的 ToString()
以使用 Reflection
获取 class.
的所有值
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
}
我有一个class。
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
}
然后我将它用作我的列表的数据类型Interface
foreach(DataRow r in tbl1.Rows)
{
InterFace.Add(new IdDetails
{
transactionDate = Convert.ToDateTime(r["TransDate"]).ToString(@"MM/dd/yyyy"),
upnName = string.Empty
movementTrade = "incoming",
//... Somemore adding of values
}
}
我试过这个reference。但是,我认为它是在每个项目中使用单个数据构建的字符串。我不知道这个的实际术语
我已经尝试使用我的参考资料来这样做
var x = concatenate<IdDetails>(Interface, Convert.ToString, ';');
但我没有得到我需要的结果,相反我得到了值
//output im getting
x = "DataImport2.IdDetails;" //<- this string repeated multiple times
问题:如何直接将自定义列表的内容写入字符串生成器?无需我将其转换为另一个对象。因为我可以将其转换为 DataTable
并将其处理为 StringBuilder
。这是一个相当长的过程和编码。
希望有人能帮助我。
您可以使用string.Join()
来实现您所需要的。例如
string.Join(",", Interface.Select(item => item.transactionDate + " " + item.xxx + // etc etc));
编辑:
覆盖 IdDetails
中的 ToString()
以使用 Reflection
获取 class.
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
}