/// <summary>
/// 将List转换成文本
/// </summary>
/// <param name="inputData"></param>
/// <returns></returns>
public string ToText(List<OrderConfirmDto> inputData)
{
var type = typeof(OrderConfirmDto);
var props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
StringBuilder sb = new StringBuilder();
foreach (var dto in inputData)
{
StringBuilder rowSb = new StringBuilder();
foreach (PropertyInfo p in props)
{
var value = p.GetValue(dto);
object defaultValue = p.PropertyType.IsValueType ? Activator.CreateInstance(p.PropertyType) : null;
//如果等于默认值
if (value == defaultValue)
{
rowSb.Append("NULL,");
continue;
}
//如果是字符型
if (p.PropertyType == typeof(string))
{
var empty = value.ToString();
if (string.IsNullOrWhiteSpace(empty))
{
rowSb.Append("NULL,");
continue;
}
}
//如果是日期型
if (p.PropertyType == typeof(DateTime))
{
var date = ((DateTime)value).ToString("yyyy-MM-dd");
rowSb.Append(date).Append(",");
continue;
}
rowSb.Append(value + ",");
}
if (rowSb.Length > 0)
{
var row = rowSb.ToString(0, rowSb.Length - 1);
sb.Append(row).Append(Environment.NewLine);
}
}
return sb.ToString();
}
public DataTable ToDataTable(List<OrderConfirmDto> inputData)
{
DataTable dt = new DataTable("INDATA");
var type = typeof(OrderConfirmDto);
var props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
foreach (PropertyInfo p in props)
{
Type colType = p.PropertyType;
if (colType.IsGenericType && colType.GetGenericTypeDefinition() == typeof(Nullable<>))
{
colType = colType.GetGenericArguments()[0];
}
dt.Columns.Add(p.Name, colType);
}
foreach (var dto in inputData)
{
var row = dt.NewRow();
foreach (PropertyInfo p in props)
{
var value = p.GetValue(dto);
if (value == null)
{
row[p.Name] = DBNull.Value;
}
else
{
row[p.Name] = value;
}
}
dt.Rows.Add(row);
}
return dt;
}