La détermination du type d'objet

Dans cette question nous avons résolu notre problème mais il y a un point que je n'ai pas encore appris.

Ci-dessous les commentaires dans le post ci-dessus:

Mon but, c'est - À appeler chaque fichier de données basé sur l'indexation de tableau imbriqué et de supprimer les trois dernières lignes. So-
$array = New-Object Sytem.Collections.Arraylist; Get-ChildItem C:\...\test | ForEach-Object { $array += ,@(Get-Content $_.FullName) }; $array[0].removerange($array[0].count-2,2)
Mais il déclenche une erreur que removerange n'est pas reconnu. J'ai vérifié - $array[0] | gm et removerange méthode n'était pas vraiment là. Il suffit de Retirer et Removeat. Comment procéder pour cela? - iamsmith41 Jan 11 à 22:14

@iamsmith41 Get-Content renvoie une System.Array, pas un System.Collections.ArrayList. Les anciens n'ont pas de RemoveRange() méthode. Aussi, merci de ne pas déplacer la cible. Si l'une des réponses résout le problème décrit dans votre question: veuillez envisager d'accepter cette réponse. Si vous avez des nouvelles ou de suivi question: veuillez poster une nouvelle question. - Ansgar Wiechers Jan 11 à 23:33

Ok. J'ai marqué la réponse. Mais laissez-moi savoir comment la faire( removerange() la méthode ). Merci à l'avance. - iamsmith41 2 jours il ya

$array += ,[Collections.ArrayList]@(Get-Content $_.FullName) devrait probablement suffire. Si vous avez besoin d'une aide supplémentaire, veuillez poster une nouvelle question. - Ansgar Wiechers 2 jours il ya


Comment connaître le type d'objet, comme ci-dessus que j'ai utiliser est Collections.ArrayList et ainsi de suite? Comment savoir que c'est un System.Array et pas System.Collections.ArrayList, etc.?

  • ($expression).GetType().FullName ou [Type]::GetTypeArray((,($expression)))[0].FullName.
InformationsquelleAutor iamsmith41 | 2017-01-15