[英]System.FormatException: Input string was not in a correct format. c#
[英]C# System.FormatException: Input string was not in a correct format
我試圖使用String.Format創建一個字符串並添加參數。 但是由於某種原因,我收到了錯誤消息-
System.FormatException:輸入字符串的格式不正確。
這是我的代碼
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 {{ " +
除占位符外,不允許在格式字符串中使用花括號,因此“ {0}
”可以,而“ {some text}
”則不能。 您可以使用大括號將您的問題解決:“ {{some text}}
”
不確定如何將值傳遞給參數。 您可以直接在字符串中使用參數,而不是使用字符串格式功能。
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 }. " +
genreMatch +
dateMatch +
"FILTER(lang(?title) = 'en') " +
"}" +
"ORDER BY DESC(?releaseDate)" +
limit;
return queryPattern;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.