铁血阵列通过声明数组

问题描述:

我搜索,但没有找到在C#铁血阵列通过声明数组

我已经宣布和分配阵列的解决方案:

string[] arr1 = {"a","b","c","d","e","f"}; 
string[] arr2 = {"1","2","3","4","5","6"}; 
string[] arr3 = {"s","t","a","c","k","o"}; 
string[] arr4 = {"v","e","r","f","l","w"}; 

我要让那些阵列交错数组,但没有成功。

string[,] port = new string[] 
{ 
    new string[] arr1[], 
    new string[] arr2[], 
    new string[] arr3[], 
    new string[] arr4[], 
}; 

我犯的错误在哪里?

我的计划会产生随机int s到来自锯齿状排列调用值

Random random = new Random(); 
int x = random.Next(0,5); 
int y = random.Next(0,3); 
Console.WriteLine(port[y,x]); 
+0

你想创建一个数组的数组? – mm8

+0

是的,但我做不到,它是一种2维数组,我怎么需要从声明的数组中创建该数组 – melic

+0

简而言之,[[,]'是多维的,[] []是锯齿的 – Slai

有两种错误:

  1. 你不声明锯齿状阵列,但多维一。由于你的“内部”数组已经定义好了,所以你需要一个阵列这就是所谓的“锯齿状”阵列。
  2. 你不需要new string[]在声明中,你已经声明内阵列

所以这应该工作:

string[][] port = new string[][] 
{ 
    arr1, arr2, arr3, arr4 
}; 

或数组初始化更短:

string[][] port = { arr1, arr2, arr3, arr4 }; 

要访问此数组,请使用:

Console.WriteLine(port[y][x]); 
+0

似乎我不明白的锯齿阵列的逻辑;谢谢它的工作 – melic

试试这个:

string[] arr1 = { "a", "b", "c", "d", "e", "f" }; 
string[] arr2 = { "1", "2", "3", "4", "5", "6" }; 
string[] arr3 = { "s", "t", "a", "c", "k", "o" }; 
string[] arr4 = { "v", "e", "r", "f", "l", "w" }; 

string[][] port = new string[4][]; 
port[0] = arr1; 
port[1] = arr2; 
port[2] = arr3; 
port[3] = arr4; 

或者干脆:

string[][] port = new string[][] { arr1, arr2, arr3, arr4 }; 

用法:

string test = port[1][5]; 
+0

谢谢mm8,它是非常好的,你一次分享2解决方案 – melic

+0

我希望我能接受这两个答案:D你们两个帮了我很多 – melic