110,531
社区成员
发帖
与我相关
我的任务
分享
char[,] Val = new char[, ] { { 'a', 'b' ,}, { 'c', 'd', }, { 'e', 'f', }, { 'g', 'h' } };
foreach (var i in Enumerable.Range(0,Val.GetLength(0)))
{
char[] buffer=new char[Val.GetLength(1)];
Buffer.BlockCopy(Val, i* Val.GetLength(1) * sizeof(char), buffer, 0, Val.GetLength(1) * sizeof(char));
Console.WriteLine(new string(buffer));
}
char[,] Val = new char[, ] { { 'a', 'b' ,}, { 'c', 'd', }, { 'e', 'f', }, { 'g', 'h' } };
char[] _buffer=new char[Val.GetLength(0) * Val.GetLength(1)]; //虽然规定的8个
Buffer.BlockCopy(Val, 0, _buffer, 0, _buffer.Length *sizeof(char)); //但是下面的直接copy 16个字节过去
char[][] StrArr = new char[][]{ new char[] {'a', 'b' }, new char[] { 'c', 'd' }, new char[] { 'e', 'f' }, new char[] { 'g', 'h' } };
foreach (var c in StrArr)
{
Console.WriteLine(new string(c));
}
char[][] strArr = new char[2][];
strArr[0]=new char[]{ 'a','b','c'};
strArr[1]=new char[]{ 'd','e','f' };
//复制到一个新的一维数组
char[] newChar = strArr[0];
//char数组转为string
string str = new string(strArr[0]);
char[,] charArr = { { 'a', 'b', 'c' } , { 'd', 'e', 'f' } };
string[] strArr = new string[charArr.GetUpperBound(0) + 1]; //strArr的每个元素分别放到各个label
for(int i=0;i<=charArr.GetUpperBound(0);i++)
{
for(int j=0;j<=charArr.GetUpperBound(1);j++)
{
strArr[i] += charArr[i, j];
}
}
或者将二维数组转为交错数组
private char[][] convertArr(char[,] oldArr)
{
int len1 = oldArr.GetUpperBound(0);
int len2 = oldArr.GetUpperBound(1);
char[][] charArr2 = new char[len1+1][];
for (int i = 0; i <= len1; i++)
{
charArr2[i] = new char[len2 + 1];
for (int j = 0; j <= len2; j++)
{
charArr2[i][j] = oldArr[i, j];
}
}
return charArr2;
}