Modifier le tableau avec le Tableau.Foreach et expression lambda
Je suis en train de modifier les valeurs de la matrice, mais elle n'est pas modifiée:
string buzones = File.ReadAllText("c:\\Buzones");
string[] buzoneslist = buzones.Split(',');
Array.ForEach(buzoneslist, x =>
{
x = x.Replace(",", "");
});
C'est comme si je suis en train de faire une chaîne de caractères.Remplacer, sans réglage de la valeur résultante de la
variable:
s.replace(",", "");
au lieu de s=s.replace(",", "");
Est-il possible d'accomplir à l'intérieur d'une expression lambda?.
Non, et il ne le sera jamais. Aussi, horrible style. Utilisation
Select
de la place et créer un nouveau tableau.OriginalL'auteur Carlos Landeras | 2013-06-11
Vous devez vous connecter pour publier un commentaire.
Non, vous ne pouvez pas modifier un tableau tandis que vous êtes l'énumération avec
ForEach
, et les chaînes sont immuables donc il n'y a pas de fonction qui va modifier l'instance en place.Que vous pourriez faire:
Ou:
Je suppose que si tu voulais vraiment utiliser une lambda, vous pourriez écrire une méthode d'extension:
Et puis:
OriginalL'auteur Blorgbeard