Các công trình sau đây như mong đợi:Powershell: Hai mảng chiều
$values = @(("a", "b"), ("c", "d"))
foreach($value in $values)
{
write-host "Value 0 =" $value[0]
write-host "Value 1 =" $value[1]
}
mà kết quả (1) trong:
Value 0 = a
Value 1 = b
Value 0 = c
Value 1 = d
Nhưng nếu tôi thay đổi $ giá trị biến:
$values = @(("a", "b"))
kết quả (2) là:
Value 0 = a
Value 1 =
Value 0 = b
Value 1 =
trong khi tôi dự kiến sẽ có kết quả (3) là:
Value 0 = a
Value 1 = b
Thay đổi $ giá trị:
$values = @(("a"), ("b"))
cho kết quả tương tự như kết quả (2) ở trên. Đây là những biểu diễn dữ liệu rất khác nhau.
Kịch bản mà tôi đang viết cần có khả năng xử lý mảng hai chiều trong đó thứ nguyên đầu tiên có chiều dài từ 0 đến N. Tôi muốn có thể viết tập lệnh sao cho nếu phần tử cấp đầu tiên cần được thêm vào (hoặc gỡ bỏ) mà tôi không phải thay đổi logic của tập lệnh; Tôi muốn có thể chỉnh sửa "dữ liệu". Vì vậy, câu hỏi của tôi là: Làm thế nào để tôi ghi một mảng hai chiều để hiển thị foreach vòng lặp sẽ hoạt động chính xác khi thứ nguyên đầu tiên của mảng có độ dài là 1?
get-host phản ứng với:
Name : ConsoleHost
Version : 2.0
InstanceId : 2338657f-e474-40d8-9b95-7e2b5f6a8acf
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : en-US
CurrentUICulture : en-US
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace
Cảm ơn bạn đã liên kết. Đây là cú pháp khá kỳ quặc. Tôi sẽ giải thích ví dụ bạn đưa ra khi xác định giá trị $ [1,0] và $ values [1,1]. –