Eu quero dividir esta linha:
string line = "First Name ; string ; firstName";
em uma matriz de suas versões cortadas:
"First Name"
"string"
"firstName"
Como posso fazer isso tudo em uma linha? A seguir, aparece um erro "Não é possível converter o tipo void":
List<string> parts = line.Split(';').ToList().ForEach(p => p.Trim());
ForEach
funciona na instância atual deIEnumerable
e retornavoid
.Respostas:
Experimentar
FYI, o método Foreach realiza uma ação (recebe T e retorna nulo) para o parâmetro, e seu lambda retorna uma sequência como sequência.Trim retorna uma sequência
O método de extensão Foreach visa modificar o estado dos objetos na coleção. Como a string é imutável, isso não terá efeito
Espero que ajude; o)
Cédric
fonte
ForEach
não é um método de extensão.O
ForEach
método não retorna nada, então você não pode atribuir isso a uma variável.Use o
Select
método de extensão:fonte
Porque p.Trim () retorna uma nova string.
Você precisa usar:
fonte
Como alternativa, tente o seguinte:
fonte
Aqui está um método de extensão ...
fonte
tente usar o Regex:
fonte
Split retorna o tipo de string []. Escreva um método de extensão:
Gostei da sua solução, por isso decidi adicioná-la e torná-la mais utilizável.
fonte
Use Regex
Resultado:
prumo
Jon
homem
francis
Lucas
lee
prumo
Explique o padrão [,; \ s]: corresponde a uma ocorrência de,; ou caractere de espaço
fonte