Exception is thrown when using {StringToReplace} and {0} in String.Format()
例如,
1 2
| string str= string.Format(@"<p style=""font-family:Times New Roman, serif;font-size: 12pt;"">Total Qty {qty} on Date {0}
</p>",dr["Date"]); |
我想稍后更换数量。它抛出异常"Input string was not in a correct format"。
有人能说出原因和可能的解决办法吗?
- 简言之:{qty}字符串表示没有可显示的等效源。"@"符号用于文本字符串,请改用"$"。"
- 您的0已具有特定日期的值?
- 如果qty的值为10,您希望格式化的字符串是"Total Qty {qty} on Date 01/01/2017"还是"Total Qty 10 on Date 01/01/2017"?
- 正确的解决方案是string str=string.format(@"
总数量数量日期0
","01/01/2017");
我认为你应该这样使用:
1
| string str= string.Format(@"Total Qty {{qty}} on Date {0}","01/01/2017"); |
得到输出为Total Qty {qty} on Date 01/01/2017。你没有对qty做任何说明,如果它是一个变量,你想在{和}之间显示它的值,那么你应该用$代替@,这次代码如下:
1 2
| int qty = 10;
string str = string.Format($"Total Qty : {qty} on Date : {{0}}","01/01/2017"); |
这次您将得到输出作为Total Qty : 10 on Date : 01/01/2017。
- @莫希什里瓦斯塔瓦:那会很好
- string str=string.format(@"总数量数量日期0","01/01/2017");有效!谢谢!
- @阿米特巴特:很高兴听到它起作用。快乐的密码。如果它完全解决了你的问题,你可以把它标记为接受。
- 如何用字符串格式的10替换数量($"总数量:数量日期:0","01/01/2017");
- 其中qty是用10初始化的整数变量,见更新。
- 我的意思是它不工作..意外的字符"$"
我认为你应该使用$而不是@,因为。字符串内插值,我们只需在字符串前面加上一个$(就像我们对逐字字符串使用@)。然后,我们简单地用大括号(即和)包围要插入的表达式。
1 2 3
| int qty = 10;
string str = string.Format($"Total Qty {qty} on Date {{0}}","01/01/2017");
Console.WriteLine(str); |
输出是
Total Qty 10 on Date 01/01/2017
可以看到工作的小提琴
- 这会引发一个错误。在$和代码末尾需要表达式。
- 此代码无法编译
- 小提琴手说"EDOCX1"(0),那么"EDOCX1"(1)的供货日期在哪里?
- @莫希什里瓦斯塔瓦:我没有特权取消其他人的选票。投反对票的人会帮你把它除掉的,不管怎么说,小提琴手还是说Total Qty 10 on Date 0。
- @不走运,对不起,我没有更新小提琴的路径。现在已经更新了。谢谢)
- 不工作..意外字符"$"
您需要使用此格式:
1
| $"Total Qty {qty} on Date {{0}}","01/01/2017" |
下面是一个工作示例:https://dotnetfiddle.net/ujjys
- 假设您不希望格式化字符串是"Total Qty {qty} on Date 01/01/2017",但希望它是"Total Qty 10 on Date 01/01/2017",其中qty的值为10。