Хотя стандарт C ++ не имеет такого требования, некоторым компиляторам требуется, чтобы все шаблоны функций и классов были доступны в каждой используемой системе переводов. Фактически для этих компиляторов тела шаблонных функций должны быть доступны в файле заголовка. Повторить: это означает, что эти компиляторы не позволят их определять в файлах без заголовка, таких как .cpp-файлы
Существует ключевое слово export , которое должно смягчать этот проблема, но он нигде не близок к тому, чтобы быть портативным.
Вы можете использовать string.Join
и избавиться от foreach
:
File.WriteAllText(path + @"\numbers.txt", string.Join(Environment.NewLine, Numbers));
Или вы можете использовать цикл foreach
, но изменить на AppendAllText
вместо WriteAllText
:
foreach (var x in Numbers)
{
File.AppendAllText(path + @"\numbers.txt", x.ToString() + "\r\n");
}
WriteAllText
заменит весь текст в файле, а AppendAllText
добавит в файл. В вашем примере WriteAllText
перезаписывает предыдущие значения, поэтому в результате вы получите только последнее значение в файле.