Ich habe ein Verfahren, dasVerketten jedes nicht leere Parameter und seinen Wert
eine Reihe von Zeichenfolgen in seperate Parameter akzeptiertpublic string GetQueryString(string string1, string string2, string string3...)
es eine Zeichenkette in der Form von
"string1:value1 string2:value2 string3:value3..."
Weil I zurückkehren sollte Ich möchte keine Reflektionslogik in die Anrufer von GetQueryString
setzen, ich denke, mit string[,]
Parameter arbeiten ist keine Option.
Was muss ich nun ein Weg durch alle meine Parameter zu gehen und fügen Sie „parName:parValue
“ zu meinen S tringBuilder
.
Zur Zeit mache ich das von jedem von ihnen mit einer if
Klausel
if (!string.IsNullOrEmpty(string1))
sb.AppendFormat("{0}:{1}", "string1", string1);
Überprüfung Wie kann diese verbessert werden?
--CLARIFICATION--
Was ich glaube, dass der OP will, ist, etwas zu tun wie folgt aus:
string str1 = "Hello";
string s2 = "World";
string MyStr = "Greetings";
string YourStr = "Earthlings";
string query = GetQueryString(str1, s2, MyStr, YourStr);
und senden Sie es haben "str1:Hello s2:World MyStr:Greetings YourStr:Earthlings"
--EDIT--
Klärung richtig.
Da meine Methode GetQueryString heißt, bedeutet das nicht, dass ich an einer HTML-Abfrage-Zeichenfolge arbeite. In diesem speziellen Fall ist es tatsächlich eine Lucene-Abfragezeichenfolge. Aber es könnte jede Suchfunktion sein, die Strings zu einer Abfrage verarbeiten kann.
Ich verstehe nicht. Was hat reflecton mit params string [] args zu tun? –
Der Aufrufer sollte dann auch den Namen des Parameters übergeben. Sollte also der Name des Parameters bekannt sein, so sollte Reflexion verwendet werden. –
OP aktualisieren, damit Wert/Name-Paare berücksichtigt werden –