我有一组带有显示名称和电子邮件地址的对象。我想过滤它,以便只显示唯一的显示名称。相同的显示名称可以具有不同的电子邮件地址,如下所示:
然而,当我这样做时:
> Sys.setenv(LD_LIBRARY_PATH="/usr/lib/libreoffice/program")
> system("loffice --headless --convert-to pdf /tmp/foo.xlsx")
convert /tmp/foo.xlsx -> //foo.pdf using filter : calc_pdf_Export
Overwriting: //foo.pdf
我不会得到一个DisplayName,而是所有四个对象。
如何实现它以便只显示一个对象?
感谢您的帮助。
答案 0 :(得分:3)
您可以先获取DisplayNames的唯一列表,然后在循环中为每个DisplayName选择第一个对象。您可以应用不同的逻辑,而不是下面的简单排序,例如获取非空的字段:
$UniqueArray = $objectArray | Select-Object DisplayName -Unique | ForEach-Object {
$DisplayName = $_.DisplayName
$objectArray | Where-Object DisplayName -eq $DisplayName | Sort-Object LoginName | Select-Object -First 1
}