使用LINQ Select
方法的一个重载,我可以使用item的索引构造一个新类型作为属性之一:
var lst = new List<int>() {1,1,2,3,5};
var selected = lst.Select((x,index) => new {
number = x,
index
});
是否可以使用Select-Object
将当前索引包含为输出对象的属性之一?
# $selected.Visual is a WPF Grid
$selected.Visual.ColumnDefinitions | Select-Object -Property Width, MinWidth, MaxWidth, ActualWidth
答案 0 :(得分:1)
我怀疑你是否可以访问索引,但是你可以将输出传递给Foreach-Object
cmdlet并自己计算索引:
$selected.Visual.ColumnDefinitions | ForEach-Object -Begin {$idx = 0} -Process {
$_ | Select-Object Width, MinWidth, MaxWidth, ActualWidt, @{l='index'; e={$idx}}
$idx += 1
}
答案 1 :(得分:1)
另一个选择是使用自动递增的变量,因此不需要循环:
$index = 0
$selected.Visual.ColumnDefinitions | Select-Object -Property @{n="index";e={(++$Script:index)}}, Width, MinWidth, MaxWidth, ActualWidt
在脚本范围改性剂是必要的用于更新索引的值。