【发布时间】:2020-02-10 19:53:28
【问题描述】:
我目前正在尝试合并一个包含 N 个哈希表的列表 - 其中每个表都包含一个时间戳以及另一个哈希表列表。
这个想法是联合哈希表列表并与来自具有最高时间戳的表中的一行发生冲突。
举个例子:
@(
@{
week = '2020-05'
participants = @(
@{
name = 'user A'
age = 35
address = 'city A'
},
@{
name = 'user B'
age = 16
address = 'city B'
}
)
},@{
week = '2020-04'
participants = @(
@{
name = 'user A'
age = 35
address = 'city A'
},
@{
name = 'user B'
age = 16
address = 'city A'
},
@{
name = 'user C'
age = 42
address = 'city B'
}
)
}
)
请注意,对于解释,我们在 2020-05 年收到了 2 个用户,而在 2020-04 年我们收到了 3 个用户。
现在,最终目标是得到这样的列表:
result = @(
@{
week = '2020-05'
name = 'user A'
age = 35
address = 'city A'
},
@{
week = '2020-05'
name = 'user B'
age = 16
address = 'city B'
},
@{
week = '2020-04'
name = 'user C'
age = 42
address = 'city B'
}
)
我现在的问题是:是否有可能在不需要显式循环的情况下解决这个问题 - 但使用 foreach 或 select 对象?我已经能够使用 select object / distinct 获得一组唯一用户名 - 但在这里我不仅对可能的名称列表感兴趣 - 还对名称/年龄和地址的组合感兴趣。
【问题讨论】:
标签: powershell hashtable