Question Erreur sur Foreach

Plus d'informations
il y a 15 ans 10 mois #6929 par SiSMik
Erreur sur Foreach a été créé par SiSMik
Encore une fois je reviens avec unt ruc cass c*** :)

Le code suivant fonctionne correctement pour cocher mes checkboxes
[code:1]
[string]$applications = $var.InstallApplications
$applications = $applications.trim()
[Array]$applications = $applications.Split(\";\"«»)
foreach ($item in $applications)
{
$soft = $item.Substring(0, $item.Length - 2)

$i=0
foreach ($truc in $list_applis.items) {
if ($soft -match $truc ) {
$list_applis.SetItemChecked($i, $true)
}
$i++
}

}
[/code:1]

par contre j'ai cette erreur qui s'affiche sans cesse
[code:1]
Une erreur s'est produite lors de l'énumération parmi une collection : La liste à laquelle cet énumérateur est lié a été modifiée. Un énumérateur ne peut être utilisé que
si la liste ne change pas..
Au niveau de C:\temp\tableau de bord.ps1 : 172 Caractère : 16
+ foreach <<<< ($truc in $list_applis.items) {
+ CategoryInfo : InvalidOperation: (System.Windows....EntryEnumerator:EntryEnumerator) [], RuntimeException
+ FullyQualifiedErrorId : BadEnumeration
[/code:1]

Je n'arrive pas à débugger, ne comprenant pas pourquoi la liste serait modifiée étant donné que je liste toutes les items de la liste, pas seulement les check/uncheck..

Moi pas comprendre PoSH ^^

Ciao et merci d'avance<br><br>Message édité par: benduru, à: 21/05/10 14:51

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #6930 par Arthur
Réponse de Arthur sur le sujet Re:Erreur sur Foreach
Salut, j'avais eu le même soucis que toi il y a quelques temps.

Voici le code de ma fonction.
ListeOrdi est une checklistbox.
[code:1]$CocherTous_OnClick=
{
for ($i = 0; $i -lt $ListeOrdi.Items.Count ; $i++) {
$ListeOrdi.SetItemChecked($i,$true)
}

}[/code:1]

En faite l'erreur n'est pas une erreur mais une mesure de sécurité,je ne sait plus trop pourquoi... laurent l'explique dans un des ses tuto il me semble. :P

Edit:

Moi pas comprendre PoSH ^^

C'est encore pire c'est du framework. :laugh:

Message édité par: bilbao, à: 21/05/10 15:05<br><br>Message édité par: bilbao, à: 21/05/10 15:06

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #6931 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Erreur sur Foreach
Bien que bilbao t'ait déjà répondu, je repasse la seconde couche...
benduru écrit:

étant donné que je liste toutes les items de la liste

Faux, tu modifies la liste d'où l'erreur, voir ceci .
benduru écrit:

Moi pas comprendre PoSH ^^

Bah ça a le mérite d'être clair :whistle:
Comme te l'a dit bilbao, ici il s'agit de l'apprentissage du comportement d'une interface du framework dotnet (IEnumerateur).
PowerShell n'a rien à voir là dedans, il ne fait que ce que tu lui demandes de faire.<br><br>Message édité par: Laurent Dardenne, à: 21/05/10 15:45

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #6933 par SiSMik
Réponse de SiSMik sur le sujet Re:Erreur sur Foreach
Mon abus de langage me perdra :P
C'est n'est effectivement pas du powershell, nous sommes bien d'accord :silly:

Merci pour les informations en tout cas B)

Et bon week end.. y'en a qui ont fini dans 19 minutes ^^

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.040 secondes
Propulsé par Kunena