我将使用List
作为数据结构来临时保存实时数据,我想将其写入文件中。
该程序实时接收数百万个数据,因此我想尽可能减少延迟和开销。起初,我只是组合数据(String
)并将其保存在String
(到列表中)中,但是我发现使用带有结构的固定列表会更好,因为组合字符串的过程价格昂贵(在临时保存实时数据之前,在写入文件之前)。
现在我想知道如何有效地将列表中的结构写入文件中。
List<struct_string> struct_list = new List<struct_string>(1000000);
FileStream fileStream = new FileStream(fileName,FileMode.Append,Fileaccess.Write);
StreamWriter streamWriter = new StreamWriter(fileStream);
for (int num = 0; list_structs.Count > num; num++)
{
streamWriter.Write( list_structs[num].string1 + "," +
list_structs[num].string2 + "," +
list_structs[num].string3 + "," +
list_structs[num].string4 + "," +
list_structs[num].string5 + "\r\n");
}
internal struct struct_string
{
public string string1;
public string string2;
public string string3;
public string string4;
public string string5;
public struct_string(string _string1,string _string2,string _string3,string _string4,string _string5)
{
string1 = _string1;
string2 = _string2;
string3 = _string3;
string4 = _string4;
string5 = _string5;
}
}
这是我最初想到的,但是我认为应该有内置函数或更好的方法来实现此目的。