Domanda
Perché visualizzo questo errore?
public class ParameterParser
{
public List<string> ParseParameter(string queryString)
{
queryString = queryString.Replace(" ", "");
string[] strs = queryString.Split(@"(", @"=", @",", @"<>",
StringSplitOptions.None);
List<string> parameters = new List<string>();
foreach (string ss in strs)
{
string s = ss.Trim(')');
if (s.StartsWith("@") && !s.Equals("") && s!=null)
{
parameters.Add(s.Replace(" ", ""));
}
}
return parameters;
}
}
Errore 3 La migliore corrispondenza del metodo sovraccarico per 'string.Split (params char [])' ha alcuni argomenti non validi F: ... \ ParameterParser.cs
Soluzione
Se vuoi passare un array di stringhe, devi farlo esplicitamente:
string[] strs = queryString.Split(new string[] {"(", "=", ",", "<>"},
StringSplitOptions.None);
Sospetto che stavi modellando il tuo codice su qualcosa del genere:
string[] strs = queryString.Split('(', '=', ',');
Questo utilizza un array di parametri (il modificatore params
in C #). Le matrici di parametri sono applicabili solo per il parametro finale e nessun sovraccarico di String.Split
richiede params string[]
. Ecco perché non ha funzionato per te.
Nota che ho cambiato le stringhe in semplici letterali di stringa - consiglierei di usare letterali di stringa testuali solo quando è necessario.
Altri suggerimenti
@ " (" ;, @ " = " ;, @ ", " ;, @ " lt; > " non è una stringa singola o un array char []
Prova questo:
string[] strs = queryString.Split(new string[] {@"(", @"=",@",",@"<>" },StringSplitOptions.None);