Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# stringbuilder使用变量追加文本_C#_Asp.net Mvc - Fatal编程技术网

C# stringbuilder使用变量追加文本

C# stringbuilder使用变量追加文本,c#,asp.net-mvc,C#,Asp.net Mvc,我有这一行,我如何用变量附加文本来组成标题 StringBuilder sb = new StringBuilder(); week6 = model.SelectedSunday.AddDays(-7); week5 = week6.AddDays(-7); week4 = week5.AddDays(-7); week3 = week4.AddDays(-7); week2 = week3.AddDays(-7); week1 = week2.AddDays(-7

我有这一行,我如何用变量附加文本来组成标题

  StringBuilder sb = new StringBuilder();
  week6 = model.SelectedSunday.AddDays(-7);
  week5 = week6.AddDays(-7);
  week4 = week5.AddDays(-7);
  week3 = week4.AddDays(-7);
  week2 = week3.AddDays(-7);
  week1 = week2.AddDays(-7);
  sb.AppendLine("Title, Total, " week6, week5, week4, week3, week2, week1 );
还有这个代码:

 var tradesmenReportData = _reportingService.GetTradeUKKPITradesmen(model.SelectedSunday);
  var jobSortedReportData = _reportingService.GetTradeUKKPIJobSorted(model.SelectedSunday);
  foreach (var item in tradesmenReportData)
  {
    sb.AppendLine(String.Concat("\"", item.Title, "\", item.Total, "\", item.Week6, "\", ", item.Week5, "\", ", item.Week4, "\", ", item.Week3, "\", ", item.Week2, "\", ", item.Week1));

  }
在输出文件(excel)中,值有一个“附加到值中?在上面一行的某个地方有一个额外的”。我哪里出错了

谢谢

您可以使用:

追加处理复合格式字符串返回的字符串, 其中包含零个或多个格式项,并将其添加到此实例。每个 格式项替换为的字符串表示形式 参数数组中对应的参数

您可以使用:

追加处理复合格式字符串返回的字符串, 其中包含零个或多个格式项,并将其添加到此实例。每个 格式项替换为的字符串表示形式 参数数组中对应的参数


您可以使用其他答案中所述的
StringBuilder.AppendFormat

另一个选项(例如,当使用
string
而不是
StringBuilder
)时,您应该使用
string.Format
,因为它比
Concat
可读性好得多。例如:

sb.AppendLine(string.Format(@"\"{0}\" \"{1}\" \"{2}\" \"{3}\" \"{4}\" \"{5}\" \"{6}\" \"{7}\"", 
              item.Title, //0
              item.Total, //1
              item.Week6, //2
              item.Week5, //3
              item.Week4, //4
              item.Week3, //5
              item.Week2, //6
              item.Week1) //7
           );

您可以使用其他答案中所述的
StringBuilder.AppendFormat

另一个选项(例如,当使用
string
而不是
StringBuilder
)时,您应该使用
string.Format
,因为它比
Concat
可读性好得多。例如:

sb.AppendLine(string.Format(@"\"{0}\" \"{1}\" \"{2}\" \"{3}\" \"{4}\" \"{5}\" \"{6}\" \"{7}\"", 
              item.Title, //0
              item.Total, //1
              item.Week6, //2
              item.Week5, //3
              item.Week4, //4
              item.Week3, //5
              item.Week2, //6
              item.Week1) //7
           );
AppendFormat重载将用传递给方法的参数(week6/week5等)替换占位符

对于第二个代码段,您可以再次使用:

sb.AppendFormat("\"{0}\", \"{1}\", \"{2}\", \"{3}\", \"{4}\", \"{5}\", \"{6}\", \"{7}\"", item.Title, item.Total, item.Week6, item.Week5, item.Week4, item.Week3, item.Week2, item.Week1);
AppendFormat重载将用传递给方法的参数(week6/week5等)替换占位符

对于第二个代码段,您可以再次使用:

sb.AppendFormat("\"{0}\", \"{1}\", \"{2}\", \"{3}\", \"{4}\", \"{5}\", \"{6}\", \"{7}\"", item.Title, item.Total, item.Week6, item.Week5, item.Week4, item.Week3, item.Week2, item.Week1);

很难说,因为
“\”
不起作用,而且
字符串.Concat
也不可读。这是准确的密码吗?也许您可以尝试使用
String.Format(“\”{0}\,“{1}\”,item.Title,item.Total,…)
。是的,它是,并且“\”是excel的分隔符。我继承了这个代码。这里导出到excel的所有其他代码都是这种格式,并且可以工作,但是标题是硬编码的。@charlie_cat:这个确切的代码甚至不会编译,所以我真的不认为它是您的实际代码<代码>“\”不是有效的字符串文字,第一部分的最后一行缺少逗号。很难说清楚,因为
“\”
不起作用,
字符串.Concat
不是真正可读的。这是准确的密码吗?也许您可以尝试使用
String.Format(“\”{0}\,“{1}\”,item.Title,item.Total,…)
。是的,它是,并且“\”是excel的分隔符。我继承了这个代码。这里导出到excel的所有其他代码都是这种格式,并且可以工作,但是标题是硬编码的。@charlie_cat:这个确切的代码甚至不会编译,所以我真的不认为它是您的实际代码<代码>“\”不是有效的字符串文字,并且第一节的最后一行缺少逗号。StringBuilder已经有了AppendFormat重载,因此对AppendLine方法使用string.Format有点多余。感谢您的评论。我将把这个答案留作类似情况下的string.Format示例…StringBuilder已经有了AppendFormat重载,因此在AppendLine方法中使用string.Format有点多余。感谢您的评论。我将把这个答案留作类似情况下的string.Format示例…对不起,我刚刚测试了它,标题部分的所有内容都在一个单元格中,除了标题和合计,其余内容都在excel中的一行?我不熟悉excel的行为,但我猜您缺少逗号。我将修复示例。对不起,我刚刚测试了它,标题部分的所有内容都在一个单元格中,除了标题和总计,其余内容都在excel的一行中?我不熟悉excel的行为,但我猜您缺少逗号。我来修理样品。