Question

Pourquoi ai-je cette erreur?

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

Erreur 3 La meilleure correspondance de méthode surchargée pour 'string.Split (params char [])' comporte des arguments non valides F: ... \ ParameterParser.cs

Était-ce utile?

La solution

Si vous voulez passer un tableau de chaînes, vous devez le faire explicitement:

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

Je soupçonne que vous modélisez votre code sur quelque chose comme ceci:

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

Ceci utilise un tableau de paramètres (le modificateur params en C #). Les tableaux de paramètres ne sont applicables que pour le paramètre final et aucune surcharge de String.Split ne nécessite un params string[]. C'est pourquoi cela ne fonctionnait pas pour vous.

Notez que j'ai changé les chaînes en littéraux simples. Je vous recommanderais de n'utiliser que des littéraux complets lorsque vous en aurez réellement besoin.

Autres conseils

@ & "; (&"; @ "!"; "; &"; "@"! "; &"; "; &"! lt; > " n'est pas une simple chaîne ou un tableau char []

Essayez ceci:

string[] strs = queryString.Split(new string[] {@"(", @"=",@",",@"<>" },StringSplitOptions.None);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top