我正在使用'|'分隔符从c#文件中读取文本,从文本创建类对象,然后将这些对象推到列表上

本文关键字:对象 然后 创建 列表 文本 读取 分隔符 文件 取文本 | 更新日期: 2023-09-27 18:16:41

问题是,我的列表中的每个条目都会成为刚刚添加的条目的副本。

基本上,如果我的列表中有10个对象(文本文件中的10行),列表中的所有10个对象都将成为第10个对象的副本。这在循环过程中的任何一点都是正确的,如果我在第六次迭代时停止,所有之前的5个条目现在都将是我添加的第六行的副本。这是我的循环:

StreamReader lolz = new StreamReader("test.txt");
while (!lolz.EndOfStream)
{
    string line = lolz.ReadLine();
    string[] lines = line.Split('|');
    {
        tasksList.Add(new TaskList(lines[0], lines[1], lines[2], lines[3], lines[4], lines[5], lines[6]));
    }
}

我正在使用'|'分隔符从c#文件中读取文本,从文本创建类对象,然后将这些对象推到列表上

尝试删除大括号,而不是

string[] lines = line.Split('|');
{
    tasksList.Add(new TaskList(lines[0], lines[1], lines[2], lines[3], lines[4], lines[5], lines[6]));
}

string line = lolz.ReadLine();
string[] lines = line.Split('|');
tasksList.Add(new TaskList(lines[0], lines[1], lines[2], lines[3], lines[4], lines[5], lines[6]));

似乎你正在通过引用获得最后一个对象,你应该检查你是否不使用静态类或静态成员,也许你应该发布整个代码来正确回答你的问题…

应该这样使用:

using(StreamReader lolz = new StreamReader("test.txt"))
{
    string line;
    string[] lines;
    while ((line = lolz .ReadLine()) != null)
    {
        lines = line.Split('|');
        tasksList.Add(new TaskList(lines[0], lines[1], lines[2], lines[3], lines[4], lines[5], lines[6]));
    }
}
相关文章: