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