C# 系统.FormatException : Input string was not in a correct format

标签 c# asp.net string.format

我正在尝试使用 String.Format 创建一个字符串并添加参数。但由于某种原因,我收到了错误 -

System.FormatException: Input string was not in a correct format.

这是我的代码

string queryPattern =
"PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> " +
"PREFIX db: <http://dbpedia.org/ontology/> " +
"PREFIX prop: < http://dbpedia.org/property/> " +
"SELECT ?movieLink ?title ?genreLink ?genre ?releaseDate " +
"WHERE { " +
    "?movieLink rdf:type db:Film; " +
                "foaf:name ?title. " +
    "OPTIONAL { ?movieLink prop:genre ?genreLink. " +
                "?genreLink rdfs:label ?genre. " +
                "FILTER(lang(?genre) = 'en') }. " +
    "OPTIONAL{ ?movieLink <http://dbpedia.org/ontology/releaseDate> ?releaseDate }. " +

    "{0}" +
    "{1}" +
    "FILTER(lang(?title) = 'en') " +
"}" +
"ORDER BY DESC(?releaseDate)" +
"{2}";

return String.Format(queryPattern, genreMatch, dateMatch, limit);

如有任何帮助,我们将不胜感激。

最佳答案

string.Format 使用花括号 ({}) 来指示占位符。您的格式字符串无效,因为它包含另外几个花括号。

你需要通过将它们加倍来转义这些括号:

string s = "Teststring {{ {0} }}";
string r = string.Format(s, 42);

在 r 中的结果:

Teststring { 42 }

例如你的行

"WHERE { " +

应该是

"WHERE {{ " +

关于C# 系统.FormatException : Input string was not in a correct format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42959013/

相关文章:

c# - 多行正则表达式匹配第一次出现但不能匹配第二次

asp.net - Whatsapp 共享链接无法在移动设备上使用

Java 字符串格式

c# - 在 asp.net MVC 中使用 string.format 时如何更改字体大小

c# - PostgreSQL 和 Entity Framework 的超时问题

c# - 在给定两个绝对路径输入的情况下,C# 中是否存在获取相对路径的方法?

c# - 迭代数组并将强类型添加到列表中

asp.net - 在 .net 中获取 Paypal 帐户中的总余额

c# - 如何避免在 ASP.NET 代码隐藏中编写困惑的 JavaScript?

java - Java String.format() 是否存在内存泄漏