如何格式化数组中的字符串?

 纪筱陌_ 发布于 2023-02-13 19:37

我有这个代码

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]);

我该怎么做?

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

    2023-02-13 19:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有