Как перебрать $ TwitterStatuses как массив или как объекты? - PullRequest
0 голосов
/ 23 января 2020

Как я могу выполнить итерацию каждого $TwitterStatuses элемента / элемента / объекта?

(И как мне проверить каждый "статус"?)

Import-Module PSTwitterAPI


Set-TwitterOAuthSettings -ApiKey $env:ApiKey -ApiSecret $env:ApiSecret -AccessToken $env:AccessToken -AccessTokenSecret $env:AccessTokenSecret

#Get-TwitterUsers_Lookup -screen_name 'mkellerman'

$TwitterStatuses = Get-TwitterStatuses_UserTimeline -screen_name 'mkellerman'
#$TwitterStatuses = [array]Get-TwitterStatuses_UserTimeline -screen_name 'mkellerman'

Foreach ($status in $TwitterStatuses)
{
   Write-Host $status
}

Я читал то, что выглядело подобно своего рода "приведение" к использованию массива, но не уверен в отличии от объектов здесь.

см. Также:

https://devblogs.microsoft.com/scripting/basics-of-powershell-looping-foreach/

1 Ответ

1 голос
/ 23 января 2020

Ваш запрос уже хорош. Вам не нужно приводить к массиву. То, что вы получаете от Get-TwitterStatuses_UserTimeline, уже является массивом результатов.

Вы можете проверить, какой тип является объектом, вызвав для них метод .GetType().

$TwitterStatuses.GetType()

enter image description here

(метод Get-Type доступен для всех объектов)

Вы можете проверить доступные элементы, используя Get-Member на объекте, который вы хотите проверить.

$TwitterStatuses | Get-Member

enter image description here

Затем, в вашем foreach, вам нужно точно указать, что вы действительно хотите отобразить ,

Пример

Foreach ($status in $TwitterStatuses)
{
   Write-Host $status.text
}

Если вас интересует только одно из свойств, вы даже можете получить результаты напрямую, введя имя свойства. Коллекция будет повторена, и результаты отобразятся в консоли.

$TwitterStatuses.text

enter image description here

Ссылки

Get-Member

.GetType ()

...