Pergunta

Por que estou recebendo este erro?

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

Erro 3 O melhor jogo método sobrecarregado para 'string.split (params char [])' tem alguns argumentos inválidos F: ... \ ParameterParser.cs

Foi útil?

Solução

Se você quer passar uma matriz de strings, você tem que fazer isso explicitamente:

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

Eu suspeito que você estava modelando o seu código em algo parecido com isto:

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

Isso é usar um array parâmetro (o modificador params em C #). As matrizes de parâmetros só são aplicáveis ??para o parâmetro final, e sem sobrecarga de String.Split leva um params string[]. É por isso que não estava funcionando para você.

Note que eu mudei as cordas em strings literais simples -. Eu recomendaria apenas usando strings literais literais quando você realmente precisa

Outras dicas

@ "(", @ "=", @ " " @"<>" não é uma única cadeia de caracteres ou um char [] matriz

Tente isto:

string[] strs = queryString.Split(new string[] {@"(", @"=",@",",@"<>" },StringSplitOptions.None);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top