小编jsu*_*sjr的帖子

PowerShell 数组取消移位

在阅读Windows PowerShell 博客上这篇有用的文章后,我意识到我可以“移动”数组的第一部分,但不知道如何在 PowerShell 中“取消移动”或将元素推送到数组的前面。

我正在创建一个哈希对象数组,最后读取的项目首先推送到数组上。我想知道是否有更好的方法来实现这一点。

## Create a list of files for this collection, pushing item on top of all other items
if ($csvfiles[$collname]) {
    $csvfiles[$collname] = @{ repdate = $date; fileobj = $csv }, $csvfiles[$collname] | %{$_}
}
else {
    $csvfiles[$collname] = @{ repdate = $date; fileobj = $csv }
}
Run Code Online (Sandbox Code Playgroud)

有几点需要注意:

  1. 我需要使用 foreach 循环 %{$_} 展开前一个数组元素,因为仅引用该数组就会创建一个嵌套数组结构。我必须让所有元素处于同一水平。
  2. 我需要区分空数组和包含元素的数组。如果我尝试展开一个空数组,它会在数组末尾放置一个 $null 元素。

想法?

PS:空哈希元素产生 NULL 值的原因是 $null 在 PowerShell 中被视为标量。有关详细信息,请参阅https://connect.microsoft.com/PowerShell/feedback/details/281908/foreach-should-not-execute-the-loop-body-for-a-scalar-value-of-null

回答:

看起来最好的解决方案是在必要时预先创建空数组,而不是围绕 $null 问题编写代码。下面是使用 .NET ArrayList …

arrays powershell

5
推荐指数
2
解决办法
1802
查看次数

使用csvHelper序列化子类

我想在CSV输出中包含子类的值.子类包含几个指示可用操作的布尔值.

public class AllowedActions {
    public bool CanCheckIn { get; set; }
    public bool CanCheckOut { get; set; }
}

public class ContentItem {
    public AllowedActions Actions { get; set; }
    public Guid? ContentTypeId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我可以创建一个包含ContentItem属性和AllowedAction类值的类映射吗?将它们添加到地图会导致"属性'布尔CanCheckIn'未定义类型'XYZ.ContentItem'"错误.

这不起作用:

        Map(m => m.Actions.CanCheckIn);
        Map(m => m.Actions.CanCheckOut);
Run Code Online (Sandbox Code Playgroud)

c# csvhelper

3
推荐指数
1
解决办法
1590
查看次数

Service Fabric 本地群集在群集启动时创建 8 GB 文件

有问题的文件是replicatorshared.log,它是我机器上最大的单个文件,甚至比 Windows 10 交换文件还要大。我可以停止集群并删除文件,在集群启动时它会再次创建。

  • 我可以控制这个文件的初始大小吗?

  • 这个文件是用来做什么的,一开始就需要这么大?

visual-studio-2015 azure-service-fabric

1
推荐指数
1
解决办法
1213
查看次数