铁血阵列通过声明数组
问题描述:
我搜索,但没有找到在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]);
答
有两种错误:
- 你不声明锯齿状阵列,但多维一。由于你的“内部”数组已经定义好了,所以你需要一个阵列这就是所谓的“锯齿状”阵列。
- 你不需要
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];
你想创建一个数组的数组? – mm8
是的,但我做不到,它是一种2维数组,我怎么需要从声明的数组中创建该数组 – melic
简而言之,[[,]'是多维的,[] []是锯齿的 – Slai