2012-10-23 77 views
2

我正在尝试将数组的内容写入文本文件。我已经创建了文件,将文本框分配给数组(不确定是否正确)。现在我想将数组的内容写入文本文件。 Streamwriter部分是我被困在底部的地方。不确定的语法。如何将数组的内容写入文本文件? C#

if ((!File.Exists("scores.txt"))) //Checking if scores.txt exists or not 
{ 
    FileStream fs = File.Create("scores.txt"); //Creates Scores.txt 
    fs.Close(); //Closes file stream 
} 
List<double> scoreArray = new List<double>(); 
TextBox[] textBoxes = { week1Box, week2Box, week3Box, week4Box, week5Box, week6Box, week7Box, week8Box, week9Box, week10Box, week11Box, week12Box, week13Box }; 

for (int i = 0; i < textBoxes.Length; i++) 
{ 
    scoreArray.Add(Convert.ToDouble(textBoxes[i].Text)); 
} 
StreamWriter sw = new StreamWriter("scores.txt", true); 

回答

7

你可能只是这样做:

System.IO.File.WriteAllLines("scores.txt", 
    textBoxes.Select(tb => (double.Parse(tb.Text)).ToString())); 
+0

+1:很不错的LINQ的解决方案! –

1

您可以尝试关闭它之前写入文件......在FileStream fs = File.Create("scores.txt");行代码后。您可能还想为此使用using。 像这样:

if ((!File.Exists("scores.txt"))) //Checking if scores.txt exists or not 
    { 
     using (FileStream fs = File.Create("scores.txt")) //Creates Scores.txt 
     { 
      // Write to the file here! 
     } 
    } 
4
using (FileStream fs = File.Open("scores.txt")) 
{ 
    StreamWriter sw = new StreamWriter(fs); 
    scoreArray.ForEach(r=>sw.WriteLine(r)); 
}