int[,] s = new int[2, 10];//等长的二维数组,即{ {1, 2, 3}, {4, 5, 6} }元素个数必须一样
int[][] t = new int[2][];//可变的二维数组(也叫交叉数组),即{ new int[] { 1, 2, 3 }, new int[] { 4, 5, 6, 7 } }元素个数可以不一样
//int[][] t = new int[2][3];//这不可以哟,会报红的
//所以s not t
这两货竟然不是一个意思吗,我白学了!
//正确的
string[][] t = new string[2][];
string[] m = new string[10];
int oi = 0;//瞎搞
if (oi == 0)//就是玩
{
//一个二维数组
string[][] s = new string[][] {
new string [] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J" },
new string [] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j" },
};
//其中t[0] 即 = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J" }
//其中t[1] 即 = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j" }
t[0] = s[0].Select(x => x).ToArray();//or t[0] = s[0].ToArray();
t[1] = s[1].Select(x => x).ToArray();//把二维数组中的第2数组取出放到新数组
m = t[0]; //m实际上就是{ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J" }
string[] n = t[1];//n实际上就是{ "a", "b", "c", "d", "e", "f", "g", "h", "i", "j" }
//用foreach单独取出
foreach (string value in t[0])
{
Console.WriteLine(value);//A,B,C,D,...J
}
foreach (string value in t[1])
{
Console.WriteLine(value);//a,b,c,d,...j
}
//用for单独取出
for (int i = 0; i < 10; i++)
{
Console.WriteLine("-----------------------");
Console.WriteLine("t[0][{0}] = {1}", i, t[0][i]);//A,B,C,D,...J
Console.WriteLine("t[1][{0}] = {1}", i, t[1][i]);//a,b,c,d,...j
}
}
//错误的
//一般用法不都是这样吗?
int[,] s = new int[2, 10] {
{"A","B","C","D","E","F","G","H","I","J"},
{"a","b","c","d","e","f","g","h","i","j"},
};
int[] t = s[0];//这样拿出A,B,C,D,...J是不对的!这不是lua语言!
上面的是把可变的数组中把某一维的数组复制到另一个单独的一维数组的示例,接下来是把一个等长数组的某一维数组复制到另一个单独的一维数组的示例:
string[,] s = new string[2, 10] {
{ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J" },
{ "a", "b", "c", "d", "e", "f", "g", "h", "i", "j" },
};
int arrayLen = s.GetLength(0);//获取数组的维数->2
int sLen = s.GetLength(1);//获取数组的元素个数->10
Console.WriteLine("arrayLen={0}, sLen={1}", arrayLen, sLen);
string[] t1 = new string[sLen];
string[] t2 = new string[sLen];
//用循环好像有点代码多啊
for (int i = 0; i < sLen; i++)
{
t1[i] = s[0, i];
t2[i] = s[1, i];
Console.WriteLine("t1[{0}]={1}", i, t1[i]);//"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"
Console.WriteLine("t2[{0}]={1}", i, t2[i]);//"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"
}
//那是不是可以这样呢
string[] t3 = new string[sLen];
string[] t4 = new string[sLen];
//你要是这样想绝对给你不好看,...天真!:)
t3 = s[0];
t4 = s[1];
//所以以我目前的水平也就只能用for或forech了是吧
//lua就阔以呢,很先进是吗?
local a = {{1, 2, 3}, {4, 5, 6, 7}}
local b = a[1] --即:b = {1, 2, 3}
local c = a[2] --即:c = {4, 5, 6, 7}