System.Collections.Generic.List`1 [System.String]错误

时间:2019-10-17 20:09:58

标签: c#

我目前正在尝试提高自己的C#技能,并希望为工人建立一个签到系统。我想将时间戳保存在文本文件中,并在同一个人.txt文件中添加每个新戳记。

我的问题没有使其起作用,我的问题是当我写出我的列表时,为添加的每个文本添加行System.Collections.Generic.List 1 [System.String]`。请帮我解决这个问题。

我真的不知道如何摆脱System.Collections.Generic.List 1 [System.String]`部分

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace Provar_på_IO_File_system
{
    class Program
    {
        static void Main(string[] args)
        {
            string workerName = "Albert Einstien";
            string date = "2019-10-17";
            string time = "14.29";

            if (File.Exists(workerName + ".txt"))
            {
                string line;
                StreamReader sr = new StreamReader(workerName + ".txt");

                List<string> readLines = new List<string>();
                line = sr.ReadLine();

                while (line != null)
                {
                    readLines.Add(line);

                    line = sr.ReadLine();
                }
                sr.Close();

                using (StreamWriter sw = File.AppendText(workerName + ".txt"))
                {
                    sw.WriteLine(readLines);
                    sw.WriteLine("HELLLLLLLLLOOOOOOOOOOOOOOOOOOOOOOOO");
                    sw.Close();
                }
            } 
            else
            {
                FileStream fs = new FileStream(workerName + ".txt", FileMode.OpenOrCreate);
                StreamWriter sw = new StreamWriter(fs);

                sw.WriteLine(date + "\t" + time + "\t" + workerName);
                sw.Close();
                fs.Close();
            }
        }
    }
}

所以我打算从中得到的结果是看该工作人员是否具有文本文件。如果没有,它将为该人创建一个个人文件并为其添加时间戳。否则,如果文件已经存在(他已经至少签入了一次),程序将读取.txt文件,将每一行保存到列表中,然后在系统打开文件时将文件中的所有内容写入文件中,还添加新的时间戳。

一切工作都如我所愿,但它不仅添加了时间戳,该程序还添加了行System.Collections.Generic.List 1 [System.String]“和时间戳。

1 个答案:

答案 0 :(得分:1)

您需要遍历列表readLines。

var fileName = string.Format("{0}.txt", workerName)
using (StreamWriter sw = File.AppendText(fileName)) {

   foreach(string line in readLines) {
      sw.WriteLine(line);
   }

}