我有这个代码
StringBuilder sb = new StringBuilder(); var columnNames = dt.Columns .Cast() .Select(column => "\"" + column.ColumnName.Replace("\"", "\"\"") + "\"") .ToArray(); sb.AppendLine(string.Join(",", columnNames)); foreach (DataRow row in dt.Rows) { var fields = row.ItemArray .Select(field => "\"" + field.ToString().Replace("\"", "\"\"") + "\"") .ToArray(); sb.AppendLine(string.Join(",", fields)); }
在row[1]
和row[2]
这些日期,我希望他们能够在这种格式
string.Format("{0:yyyy-MM-dd HH:mm:ss.fffffff}", row[1]);
我该怎么做?
Select有一个重载,它将值和索引的函数作为参数; 您可以使用它根据索引应用不同的格式.以下示例显示了格式化值的函数.此函数用于代码中的Select:
private string FormatStringByIndex(object field, int index) { if (index > 0 && index < 3) return string.Format("{0:yyyy-MM-dd HH:mm:ss.fffffff}", field);} else return field.ToString(); } // ... StringBuilder sb = new StringBuilder(); var columnNames = dt.Columns.Cast<DataColumn>().Select(column => "\"" + column.ColumnName.Replace("\"", "\"\"") + "\"").ToArray(); sb.AppendLine(string.Join(",", columnNames)); foreach (DataRow row in dt.Rows) { var fields = row.ItemArray.Select((field, index) => "\"" + FormatStringByIndex(field, index).Replace("\"", "\"\"") + "\"").ToArray(); sb.AppendLine(string.Join(",", fields)); }