Question Tableau 2 dimensions

Plus d'informations
il y a 17 ans 3 mois #3498 par clem
Tableau 2 dimensions a été créé par clem
bonjour

Je voudrais créer un tableau à 2 dimensions

comment ajouter une ligne dynamiquement à un tableau de deux dimensions ?

Exemple (simplifié)

[code:1]foreach ($user in $complist )
{

$tab=($user.name,$user.lastlogon)

}[/code:1]

Je voudrais, qu'à chaque passage du foreach, un ligne soit ajoutée au tableau.
Le but étant de pouvoir accéder à chaque ligne, une fois le foreach terminé, par tab[index]
et (par exemple) au 2é element de la 2è ligne par Tab[1][1].

Je ne connait pas à l'avance le nombre de ligne et je ne sais pas comment declarer le tableau correctement.

Si il vous faut plus de precisions, je les donnerai bien sur.

Merci.

Message édité par: clem, à: 18/12/08 13:11<br><br>Message édité par: clem, à: 18/12/08 13:41

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

Plus d'informations
il y a 17 ans 3 mois #3501 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Tableau 2 dimensions
Salut,
clem écrit:

Exemple (simplifié)

avant de te répondre, puisque ton exemple qui se veut simplifié n'augure, à mon avis, rien de bon, peux tu nous expliquer le contexte ?
A priori tu sembles vouloir combiner une hastable avec un tableau...
clem écrit:

Je ne connais pas à l'avance le nombre de ligne

Certes mais le nombre de lignes se situe dans l'ordre de la dizaine, de la centaine, du milliéme, de la dizaine de millier, etc, etc...

Tutoriels PowerShell

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

Plus d'informations
il y a 17 ans 3 mois #3504 par clem
Réponse de clem sur le sujet Re:Tableau 2 dimensions
#requete de users sur un controleur de domaine (dc1)
$complist = $ads.findall()


foreach ($userdc1 in $complist )
{

$tab=($userdc1.Properties.name,$userdc1.Properties.lastlogon,$userdc2.Properties.lastlogon)

}

Je veux mettre dans la meme ligne d'un tableau, le nom du user courant, le lastlogon sur le controleur de domaine dc1 et le lastlogon du controleur dc2.
Je souhaite donc une ligne par userdc1 de maniee a pourvoir y acceder par tab[index].
Environ 400 users donc autant de ligne (mais ce n'est pas fixe)<br><br>Message édité par: clem, à: 18/12/08 15:03

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

Plus d'informations
il y a 17 ans 3 mois #3505 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Tableau 2 dimensions
A prioris tu récupéres un tableau que tu souhaites retravailler/filtrer, dans ce cas un arraylist me semble plus approprié ou une autre structure dynamique , c'est à dire évoluant dans le temps alors que la taille d'un tableau sous .NET n'évolue pas.
clem écrit:

Je veux mettre dans la meme ligne d'un tableau, le nom du user courant, le lastlogon sur le controleur de domaine dc1 et le lastlogon du controleur dc2.

Ensuite la question est : un arraylist d'accord mais contenant quel type d'objet ? A quel type d'accés penses-tu ?
[code:1]
$tab[1].Name
$tab[1].LastlogonDc1
$tab[1].LastlogonDc2
# ou
$tab[1].Lastlogon.Dc1
$tab[1].Lastlogon.Dc2
[/code:1]
clem écrit:

Environ 400 users donc autant de ligne (mais ce n'est pas fixe)

Qu'est-ce qui n'est pas fixe, le résulat de l'interrogation ? Est-ce à dire que la taille de ton tableau remanié doit suivre la taille du tableau des users récupérés par une interrogation ?
Ou comptes-tu ajouter des users en plus de ceux renvoyés par l'interrogation initiale ?<br><br>Message édité par: Laurent Dardenne, à: 18/12/08 15:21

Tutoriels PowerShell

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

Plus d'informations
il y a 17 ans 3 mois #3507 par clem
Réponse de clem sur le sujet Re:Tableau 2 dimensions
type d'accès :

$tab[1].Name &gt;&gt; type string
$tab[1].LastlogonDc1 &gt;&gt; type datetime
$tab[1].LastlogonDc2 &gt;&gt; type datetime


la requete me sort tous les users de l'ad, donc elle changera si un user quitte la société ou arrive, je n'ajoute pas de ligne a la main

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

Plus d'informations
il y a 17 ans 3 mois #3508 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Tableau 2 dimensions
clem écrit:

la requete me sort tous les users de l'ad, donc elle changera si un user quitte la société ou arrive, je n'ajoute pas de ligne a la main

D'accord, pense à préciser ce type d'info la prochaine fois ;)

Je te propose cette solution basée sur un tableau de hashtable :
[code:1]
$CompList = $ads.findall()
$Type=$CompList[0].GetType()
#Crée un tableau d'objet d'une taille égale à celle de la collection $CompList
$Tab=new-object Object[] $CompList.Count

#tableau débutant à zéro
$Index=0

foreach ($User in $CompList )
{
#l'élément n est une hashatable contenant 2 ou + clés
$Tab[$Index]=@{Name=$User.Name;DC1LastLogon=$User.lastlogon} # etc
$Index++
}
$Tab[0].Name
$Tab[0].DC1LastLogon
$Tab[1].Name
$Tab[1].DC1LastLogon
...
[/code:1]
En même temps tu récupères déjà un tableau que tu peux interroger sur le même principe, qu'apporte donc cette réorganisation ??
[edit]
Correction de Index en $Index<br><br>Message édité par: Laurent Dardenne, à: 18/12/08 17:10

Tutoriels PowerShell

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

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