Frage

Warum erhalte ich diesen Fehler?

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;
    }
}

Fehler 3 Die beste überladene Methode Spiel für 'String.split (params char [])' hat einige ungültige Argumente F: ... \ ParameterParser.cs

War es hilfreich?

Lösung

Wenn Sie ein Array von Strings übergeben möchten, müssen Sie das explizit tun:

string[] strs = queryString.Split(new string[] {"(", "=", ",", "<>"}, 
                                  StringSplitOptions.None);

Ich vermute, Sie wurden Modellierung Code auf so etwas wie folgt aus:

string[] strs = queryString.Split('(', '=', ',');

Dies wird mit einem Parameter array (der params Modifikator in C #). Parameter-Arrays sind nur für die letzten Parameter, und keine Überlastung der String.Split nimmt eine params string[]. Deshalb war es nicht für Sie arbeiten.

Beachten Sie, dass ich die Saiten in einfache Stringliterale geändert haben - ich würde empfehlen, nur wörtlich Stringliterale verwenden, wenn Sie tatsächlich brauchen, um

.

Andere Tipps

@ "(" @ "=" @ " "@"<>" ist nicht eine einzelne Zeichenfolge oder ein char [] array

Versuchen Sie folgendes:

string[] strs = queryString.Split(new string[] {@"(", @"=",@",",@"<>" },StringSplitOptions.None);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top