在添加指定索引位置的数组中的元素。 PowerShell的 [英] Adding element at specified index location in an array. Powershell

查看:94
本文介绍了在添加指定索引位置的数组中的元素。 PowerShell的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新来的PowerShell和试图得到一些功能整合在一起。我创建了创建一个从输入数组的功能。我也想创建添加指定索引的元素,而无需使用列表的功能(我知道名单是如此容易得多,但我想知道如何做没有列表)。

这是我的code为止。我不能得到这个工作,我试着循环和低于code,任何帮助是AP preciated。

亲切的问候!

 功能Create_array($指数,$值)
{
$阵列=新对象[]数组$指数
如果($值)
{
    为($ I = 0; $ I $ -lt array.length; $ I ++)
    {
        $阵列[$ i] = $价值
    }
    写主机
    写主机Grattis!锭阵列AR NU skapad MED angivet指数OCH瓦德。
}
其他
{
    为($ I = 0; $ I $ -lt array.length; $ I ++)
    {
        $阵列[$ i] =HEJ $ ENV:用户名OCHvälkommen直到丹尼斯OCH乔纳斯脚本Detta AR EN defaulttext,安格ETT eget指数följtAVönskat瓦德
    }
    写主机
    写主机阵列AR NU skapad配有defaultvärden
}
返回$数组
}
功能Add_to_array($ nyarray,价值$,$指数)#惯犯,直到ETT瓦德Påangivet指数埃勒längst仪OM指数EJ安格斯。
{
如果($指数-gt $ nyarray.length)
{
    $ I = $ nyarray.length
    写主机杜哈日angivit ETT felaktigt指数。声浪阵列innehåller$ I元素
}
ELSEIF($指数-gt 2)#科拉尔OM DET angivna indexet ARstörre的2
{
    $ nyarray [$指数 - 2] + = $#Varde的嗡större一个2:以pA angivet指数Angivnavärdetläggs($指标 - 2)
    写主机元素的AR NU inlagtPåangivet指数嚣我阵
}#OCH resten flyttas仪。
ELSEIF($指数-eq 1)#科拉尔OM angivet指数AR mindre的2
{
    $ nyarray [0]以pA指数1 + = $#Varde的嗡mindresättsDET angivnavärdet(0)
    写主机元素的AR NU inlagtPåangivet指数嚣我阵
}
其他
{
    $ nyarray + = $#Varde的嗡inget指数在安格斯DET angivnavärdetlängst仪萨特denna的Funktion。
    写主机元素的AR NU inlagtlängst仪我嚣阵
}
返回$#nyarray在书房惯犯NYAarrayen我DET variabelnamn人VALT。
}


解决方案

您可以用数组切片做到这一点:

  $阵列= @(1,2,4,5)
$值= 3
$指数= 2$阵列= $数组[0 ..($指数-1)],$价值$数组[$指数。($ array.Length -1)$阵列

I'm new to Powershell and trying to get a few functions together. I've created a function that creates an array from input. I'm also trying to create a function that add elements at a specified index without using lists (I know that lists are so much easier, but I'm trying to understand how to do it without lists).

This is my code so far. I just can't get this to work, I've tried with loops and the code below, any help is appreciated.

Kind Regards!

Function Create_array ($index, $value)
{
$array = new-object array[] $index
if ($value)
{
    for ($i = 0;$i -lt $array.length;$i++)
    {
        $array[$i] = $value
    }
    write-host ""
    write-host "Grattis!! Din array är nu skapad med angivet index och värde."
}
else
{
    for ($i = 0;$i -lt $array.length;$i++)
    {
        $array[$i] = "Hej $env:username och välkommen till Dennis och Jonas script. Detta är en defaulttext, ange ett eget index följt av önskat värde"
    }
    write-host ""
    write-host "Array är nu skapad med defaultvärden"
}
return $array
}


Function Add_to_array ($nyarray, $value, $index) # Lägger till ett värde på angivet index eller längst ner om index ej anges.
{
if ($index -gt $nyarray.length)
{
    $i = $nyarray.length
    write-host "Du har angivit ett felaktigt index. Din array innehåller $i element"
}
elseif ($index -gt 2) # Kollar om det angivna indexet är större än 2
{
    $nyarray[$index - 2] += $värde # Om större än 2: Angivna värdet läggs in på angivet index ($index - 2)
    write-host "Element är nu inlagt på angivet index i din array"
}                      # och resten flyttas ner.
elseif ($index -eq 1) # Kollar om angivet index är mindre än 2
{
    $nyarray[0] += $värde # Om mindre sätts det angivna värdet in på index 1 (0)
    write-host "Element är nu inlagt på angivet index i din array"
}
else
{
    $nyarray += $värde # Om inget index anges sätter denna funktion in det angivna värdet längst ner.
    write-host "Element är nu inlagt längst ner i din array"
}
return $nyarray # Lägger in den "nya" arrayen i det variabelnamn man valt.
}

解决方案

You can do it with array slicing:

$array = @(1,2,4,5)
$value = 3
$index  = 2

$array = $array[0..($index -1)],$value,$array[$index..($array.Length -1)]

$array

这篇关于在添加指定索引位置的数组中的元素。 PowerShell的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆