反转数组的数组
本文关键字:数组 | 更新日期: 2023-09-27 18:10:00
我有一个string[][]
。
列表中的每个条目代表文档中的一列,数组的每个成员代表该列中的一行。
例子:
0.0 | 1.0 | 2.0
0.1 | 1.1 | 2.1
0.2 | 1.2 | 2.2
现在我要把它写入一个文件。但是,如果我这样做,我首先需要将它们转换为字符串[],其中每个元素是一行,用逗号连接(.csv文件)。
有什么建议吗?
我试着用几个循环来包装它,每个循环取每列的第n个元素,然后把它塞进一个缓冲区,然后把这些缓冲区连接在一起。我相信我会让它这样工作,但我不认为这是任何有效或好的风格。
简单:假设整个数组是矩形的(即所有行和所有列的项目数量相同)。你现在要做的是,给定一个在(x,y)的项目,将其位置更改为(y,x)。
:
var array2 = new string[array1.GetLength(0), array1.GetLength(1)];
for(int i=0;i<array2.GetLength(0);i++){
for(int j=0;j<array2.GetLength(1);j++)
array2[i,j] = array1[j][i]; //this is the magic line
}
如果你是这样开始的:
string[][] original = new[] {
new[] { "0.0", "0.1", "0.2" },
new[] { "1.0", "1.1", "1.2" },
new[] { "2.0", "2.1", "2.2" }
};
然后你可以这样做来依次处理每一行:
for (int column = 0; column < original.Length; column++)
{
string row = string.Join(",", original.Select(o => o[column]));
Console.WriteLine(row);
}
这会产生以下输出:
0.0,1.0,2.0
0.1,1.1,2.1
0.2,1.2,2.2