Я собираюсь использовать 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;
}
}
Это то, что я мог изначальноподумайте, но я думаю, что должны быть встроенные функции или более эффективные способы сделать это.