将两个值与一个值进行存储的任何最佳方法 Id/Index
Any best way to store two vales against one Id/Index
在这里我只想得到本论坛专家的建议:
在 Poweshell 中,我有一个要求,我想针对一个索引存储两个不同的值。因为稍后我想针对唯一索引访问这两个值,就像在 Powershell 中那样:
at index 0 = [value1,valu2]
at index 1 = [value3,valu4]
at index 2 = [value5,valu6]
等等...
在 powershell 中执行此操作的最佳方法是什么?
数组由数字索引。该值可以是任何对象(包括另一个数组)。
$a = @(
@('val1', 'val2') ,
@(1234, 5678) ,
@(321, 'val6')
)
$a[0][0] # 'val1'
$a[0][1] # 'val2'
$a[2][0] # 321
要使用 .Add()
和 .Remove()
方法,请考虑一个 [hashtable]
(这个有数组作为值):
$a = @{
0 = @('val1', 'val2')
1 = @(1234, 5678)
2 = @(321, 'val6')
}
$a.Add(3, @('valX','valY'))
$a[0][0] # 'val1'
$a[0][1] # 'val2'
$a[2][0] # 321
值本身也可以是哈希表,如果您也想对它们使用这些方法的话。
为了完整起见,您还可以使用自定义 PowerShell 对象。我使用的是 briantist 使用的相同示例数据集。
$a = @(
[pscustomobject]@{Index1 = 'val1';Index2 = 'val2'},
[pscustomobject]@{Index1 = '1234';Index2 = '5678'},
[pscustomobject]@{Index1 = '321';Index2 = 'val6'}
)
$a[2].Index1
321
这需要 3.0,但您可以轻松地将其更改为 2.0
如果您已经有了数组集合,那么您可以在循环中使用相同的逻辑
$a = @(
@('val1', 'val2') ,
@(1234, 5678) ,
@(321, 'val6')
) | ForEach-Object{
[pscustomobject]@{Index1 = $_[0];Index2 = $_[1]}
}
在这里我只想得到本论坛专家的建议:
在 Poweshell 中,我有一个要求,我想针对一个索引存储两个不同的值。因为稍后我想针对唯一索引访问这两个值,就像在 Powershell 中那样:
at index 0 = [value1,valu2]
at index 1 = [value3,valu4]
at index 2 = [value5,valu6]
等等...
在 powershell 中执行此操作的最佳方法是什么?
数组由数字索引。该值可以是任何对象(包括另一个数组)。
$a = @(
@('val1', 'val2') ,
@(1234, 5678) ,
@(321, 'val6')
)
$a[0][0] # 'val1'
$a[0][1] # 'val2'
$a[2][0] # 321
要使用 .Add()
和 .Remove()
方法,请考虑一个 [hashtable]
(这个有数组作为值):
$a = @{
0 = @('val1', 'val2')
1 = @(1234, 5678)
2 = @(321, 'val6')
}
$a.Add(3, @('valX','valY'))
$a[0][0] # 'val1'
$a[0][1] # 'val2'
$a[2][0] # 321
值本身也可以是哈希表,如果您也想对它们使用这些方法的话。
为了完整起见,您还可以使用自定义 PowerShell 对象。我使用的是 briantist 使用的相同示例数据集。
$a = @(
[pscustomobject]@{Index1 = 'val1';Index2 = 'val2'},
[pscustomobject]@{Index1 = '1234';Index2 = '5678'},
[pscustomobject]@{Index1 = '321';Index2 = 'val6'}
)
$a[2].Index1
321
这需要 3.0,但您可以轻松地将其更改为 2.0
如果您已经有了数组集合,那么您可以在循环中使用相同的逻辑
$a = @(
@('val1', 'val2') ,
@(1234, 5678) ,
@(321, 'val6')
) | ForEach-Object{
[pscustomobject]@{Index1 = $_[0];Index2 = $_[1]}
}