Bonjour,
Question bête, mais comment je peux faire pour dire :
Merci pour vos lumières.Code:
1
2
3
4
5 $tab = @(1,2,3) SI($tab -contient seulement 1 et 2) alors OK SINON KO
Version imprimable
Bonjour,
Question bête, mais comment je peux faire pour dire :
Merci pour vos lumières.Code:
1
2
3
4
5 $tab = @(1,2,3) SI($tab -contient seulement 1 et 2) alors OK SINON KO
Salut,
pas tant que ça, le seulement n'est pas implémenté dans les opérateurs.
Soit avec un cmdlet:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 $tab = @(1,2,3) $tab2 = @(2,3) $tab3 = @(1,2) $tab4 = @(2,1) $Set = @(1,2) $Set2 = @(2,1) #On recherche les cas où il n'y a pas de différence @(Compare-Object $set $tab3).Count -eq 0) #Test $ofs=',' 'Tab','Tab2','Tab3','Tab4'| Foreach { $T=Get-variable $_ '{0} : {1} contient seulement {2} : {3}' -F $T.Name,"$($T.Value)","$set",(@(compare $set $T.Value).Count -eq 0) }
Soit avec une classe dotnet 3.5 :
Compare-Object permet de s'affranchir des types, mais HashSet est plus rapide.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 $Hset1 = New-Object System.Collections.Generic.HashSet`[object](,$tab3) $Hset2 = New-Object System.Collections.Generic.HashSet`[object](,$set) $Hset1.SetEquals($Hset2) #Test $Hset2.SetEquals($Hset1) $SbEqual={ $Hset1 = New-Object System.Collections.Generic.HashSet`[object](,$Args[0]) $Hset2 = New-Object System.Collections.Generic.HashSet`[object](,$Args[1]) $Hset1.SetEquals($Hset2) } &$SbEqual $tab3 $set