c# - 将数组转换为多行字符串的最快方法

标签 c# arrays string c#-4.0 export-to-csv

将数组元素导出到 .csv excel 文件的最有效方法是什么?现在我正在这样做,但是速度很慢。感谢大家的支持。

int FrameWidth = 640;
int FrameHeight = 480;
Int16[] Values;  // 640 x 480, 307200 elements

/*
.. processing ...... 
*/

//Exporting Values to .csv file
string string2csv = null;
for (int y = 0; y < FrameHeight; y++)
{
    for (int x = 0; x < FrameWidth; x++)
    {
        string2csv = string2csv + Values[y * FrameWidth + x] + ";";
    }
    string2csv = string2csv + "\n";
}
File.WriteAllText("string2csv.csv", string2csv);

最佳答案

一种替代方法是结合File.WriteAllLinesstring.Join

File.WriteAllLines ("test.txt", 
    Values.Select((x,i) => new {x, i})
          .GroupBy(x => x.i / FrameWidth)
          .Select(grp => string.Join(";", grp.Select(y => y.x)))
);

它将选择所有元素以及数组中的索引。
然后它将按行对值进行分组(通过将索引除以列数来计算)。
然后使用 ; 将分组的值连接到每行的字符串中,并且所有行都被送入 File.WriteAllLines。

关于c# - 将数组转换为多行字符串的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35302784/

相关文章:

c# - 从另一个 userControl c# 访问 userControl 上的对象

python - np.where 和屏蔽数组

c++ - vector <unsigned char> 与二进制数据的字符串

string - Golang 递增字符串中的数字(使用 rune )

c# - 如何将 DateTime .NET 数据类型转换为 W3C XML DateTime 数据类型字符串并返回?

c# - 我的正则表达式有问题吗?

c# - 使用 WEB API 媒体格式化程序时,特殊字符在 Excel 中不起作用

c# - 使用多重绑定(bind)编辑文本框

java - 这些不同类型的数组减速到底是如何工作的?

python - 访问数组的多个元素