Comment puis-je remplacer toutes les voyelles de la liste avec un espace? Le code suivant ne semble pas fonctionner.
cll gtr vln
6 Réponses :
Vous devez utiliser. Sélectionner si nécessaire de modifier les valeurs de la collecte:
List<string> Instruments = new List<string>(); Instruments.Add("cello"); Instruments.Add("guitar"); Instruments.Add("violin"); Instruments.Add("double bass"); var regex = new Regex("^a|e|i|o|u", RegexOptions.IgnoreCase); var withoutVowels = from instr in Instruments select regex.Replace(instr, string.Empty); foreach (var item in withoutVowels) { Console.WriteLine(item); }
Essayez ceci
Pourrait voyelles code> être
hashset code> à la place?
@Hardywest juste par la pratique. Je recommande d'apprendre sur Collections et Linq.
Un peu rapide et sale, mais cela fonctionne pour moi.
Pensez à définir la capacité de code> de
NewList code> à la longueur code> de code> de
instruments code>.
voir string.replace documentation msn. p> En tant que tel, vous devez également parcourir vos voyelles Donc, il devrait être Remarque: @mjwills a souligné l'autre problème avec cette opération dans les commentaires. L'affectation à Cependant, c'est inefficace car vous créez essentiellement un p> devrait définir votre instruments code> a une collection de
string code> ou mots, y compris. Votre
.foreseach code> iTère via cette collection où chaque instance est
w code>, mais vous n'affectez pas ces cas avec votre utilisation de
.replace code> ici, Vous les utilisez dans une opération pour affecter la chaîne
VOWELLES code>.
code>
chaîne code> et utilisez l'instance
caractère code> de
VOWELLES code>:
w.replace (v, "") code >, où
w code> est votre instance de mot dans
instruments code> et
v code> est votre instance vocale dans
voyelles code>: p>
instruments.foreach (w => foreach (vowelchar in vowels.split ("")) {w.replit (vowelchar, "");}); code> P>
w code> ne persiste pas ici. Donc, vous devrez créer une nouvelle liste
.tolist
iEnumerable
char [] code> de
voyelles code>
chaîne code> à l'aide de
.split code> sur chaque itération de
instruments code>. p>
voyelles code> en tant que
char [] code> pour éviter la nécessité de cette opération:
var chevaux = nouveau char [] {'A', 'E', 'I', 'O', 'U', 'Y'}; CODE> P>
List<string> results = new List<string>();
Instruments.ForEach(w => {
foreach (char v in vowels) {
results.Add(w.Replace(v, ' '));
}
});
results.ForEach(w => Console.WriteLine(w));
Vous pouvez essayer la même chose avec regex:
Cela fonctionne bien pour moi: i get: p>
De: remplacer (w, "")); À: remplacer (w, ""));
ne semble pas fonctionner