none
Двумерный массив строк. RRS feed

  • Вопрос

  • Подскажите как правильно сделать двумерный массив строк.

    пробую так.

    $card_pin = @(("1111", "1111", "1111", "1111", "1111", "1111"),("1111", "1111", "1111", "1111", "1111", "1111"))

    Но получается что то не то.

    lnk

    26 апреля 2018 г. 8:14

Ответы

  • $card_pin = @( 
    	("1111", "2222"), 
    	("1111", "2222"),
    	("1111", "2222"),
    	("1111", "2222"),
    	("1111", "2222"),
    	("1111", "2222"),
    	("1111", "2222")
    )
    
    $m = $card_pin.count
    $n = $card_pin[0].count
    $str = New-Object "String[,]" $n ,$m
    
    for($i = 0; $i -lt $m; $i++) {
    	for($j=0; $j -lt $n;$j++) {
    		$str[$j,$i] = $card_pin[$i][$j]
    	}
    }
    
    "До"
    $card_pin | Foreach {$_ -join " "}
    "`nПосле"
    for($i = 0; $i -le $n; $i++) {
    	$z = for($j=0; $j -le $m;$j++) {
    		$str[$i,$j]
    	}
    	$z -join " "
    }
    
    До
    1111 2222
    1111 2222
    1111 2222
    1111 2222
    1111 2222
    1111 2222
    1111 2222
    
    После
    1111 1111 1111 1111 1111 1111 1111
    2222 2222 2222 2222 2222 2222 2222
    
    
    $card_pin = @(
    	("1","2","3","x"),
    	("4","5","6","y"),
    	("7","8","9","z")
    )
    
    До
    1 2 3 x
    4 5 6 y
    7 8 9 z
    
    После
    1 4 7
    2 5 8
    3 6 9
    x y z

    • Изменено KazunEditor 26 апреля 2018 г. 10:47
    • Помечено в качестве ответа KazunEditor 1 мая 2018 г. 8:01
    26 апреля 2018 г. 9:34
    Отвечающий

Все ответы

  • Лучше рисуйте раз не объяснить, ни скринами не полуается.

    $str = @( @("1","2","3"), @("4","5","6") ) PS > $str[0][0] 1 PS > $str[0][1] 2 PS > $str[0][2] 3

    PS > $str = New-Object "String[,]" 2,2
    PS > $str[0,0] = "a"
    PS > $str[0,1] = "b"
    PS > $str[1,0] = "c"
    PS > $str[1,1] = "d"
    PS > $str
    a
    b
    c
    d



    • Изменено KazunEditor 26 апреля 2018 г. 8:34
    • Предложено в качестве ответа Vector BCOModerator 26 апреля 2018 г. 8:36
    26 апреля 2018 г. 8:25
    Отвечающий
  • Подскажите пожалуйсто как правильно и красиво транспонировать двумерный массив?

    $card_pin = @(
    ("1111", "2222"),
    ("1111", "2222"),
    ("1111", "2222"),
    ("1111", "2222"),
    ("1111", "2222"),
    ("1111", "2222"),
    ("1111", "2222"))

    Просто вводить его удобнее в таком виде как я привел.

    А потом скриптом обрабатывать уже удобно в транспонированном виде.

    26 апреля 2018 г. 8:57
  • $card_pin = @( 
    	("1111", "2222"), 
    	("1111", "2222"),
    	("1111", "2222"),
    	("1111", "2222"),
    	("1111", "2222"),
    	("1111", "2222"),
    	("1111", "2222")
    )
    
    $m = $card_pin.count
    $n = $card_pin[0].count
    $str = New-Object "String[,]" $n ,$m
    
    for($i = 0; $i -lt $m; $i++) {
    	for($j=0; $j -lt $n;$j++) {
    		$str[$j,$i] = $card_pin[$i][$j]
    	}
    }
    
    "До"
    $card_pin | Foreach {$_ -join " "}
    "`nПосле"
    for($i = 0; $i -le $n; $i++) {
    	$z = for($j=0; $j -le $m;$j++) {
    		$str[$i,$j]
    	}
    	$z -join " "
    }
    
    До
    1111 2222
    1111 2222
    1111 2222
    1111 2222
    1111 2222
    1111 2222
    1111 2222
    
    После
    1111 1111 1111 1111 1111 1111 1111
    2222 2222 2222 2222 2222 2222 2222
    
    
    $card_pin = @(
    	("1","2","3","x"),
    	("4","5","6","y"),
    	("7","8","9","z")
    )
    
    До
    1 2 3 x
    4 5 6 y
    7 8 9 z
    
    После
    1 4 7
    2 5 8
    3 6 9
    x y z

    • Изменено KazunEditor 26 апреля 2018 г. 10:47
    • Помечено в качестве ответа KazunEditor 1 мая 2018 г. 8:01
    26 апреля 2018 г. 9:34
    Отвечающий
  • Подскажите пожалуйсто как правильно и красиво транспонировать двумерный массив?

    $card_pin = @(
    ("1111", "2222"),
    ("1111", "2222"),
    ("1111", "2222"),
    ("1111", "2222"),
    ("1111", "2222"),
    ("1111", "2222"),
    ("1111", "2222"))

    Просто вводить его удобнее в таком виде как я привел.

    А потом скриптом обрабатывать уже удобно в транспонированном виде.

    перечитайте предыдущий ответ

    то о чем вы спрашиваете находится в первых 4 строках


    The opinion expressed by me is not an official position of Microsoft

    26 апреля 2018 г. 9:35
    Модератор