将对象从数组写入文本文件c#

将对象从数组写入文本文件c#,c#,streamwriter,C#,Streamwriter,这项C#任务是根据销售人员的销售价格为他们创建不同级别的小组,然后使用streamwriter将这些信息写入文本文件 除了streamwriter部分,我已经完成了所有部分。到目前为止,我所做的是创建文件,但没有输出。 当我运行此命令时,控制台中的内容是正确的,但文本文件已修改,但为空 streamwriter位于底部 ` 使用系统; 使用System.Collections.Generic; 使用System.Linq; 使用系统文本; 使用System.Threading.Tasks; 命名

这项C#任务是根据销售人员的销售价格为他们创建不同级别的小组,然后使用streamwriter将这些信息写入文本文件

除了streamwriter部分,我已经完成了所有部分。到目前为止,我所做的是创建文件,但没有输出。 当我运行此命令时,控制台中的内容是正确的,但文本文件已修改,但为空

streamwriter位于底部

`

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
命名空间Inlämningsupplgift2
{
//Emplooyeklassen,姓名,个人信息,地区och出售物品sparas ochämtas
阶级雇员
{
字符串namn;
国际人事部;
字符串分布;
国际萨尔达尔提克拉尔酒店;
国际萨尔尼夫;
公共雇员(字符串名称、内部人员编号、字符串分布、内部såldaartiklar)
{
this.namn=namn;
this.personnumer=personnumer;
this.distrikt=distrikt;
这个.såldaartiklar=såldaartiklar;
}
公共字符串名
{
获取{return namn;}
设置{namn=value;}
}
公共内部人员
{
获取{return personnumer;}
设置{personnumer=value;}
}
公共字符串分发
{
获取{return distrikt;}
设置{distrikt=value;}
}
已售出的公帑
{
获取{return såldaartiklar;}
设置{såldaartiklar=value;}
}
公共国际学校
{
获取{return säljnivå;}
设置{säljnivå=值;}
}
}
}
使用制度;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用Inlämningsuppligit2;
使用System.IO;
名称空间控制台AP3
{
Säljlista类
{
静态void Main(字符串[]参数)
{
List ObjSeller=新列表();
List group1=新列表();
List group2=新列表();
List group3=新列表();
ObjSeller.Add(新雇员(“Oscar Norberg”,961111,“Täby”,140));
添加(新雇员(“jonas okembia”,970912,“Uppsala”,70));
ObjSeller.Add(新雇员(“Mille vega”,981212,“Danderyd”,40));
ObjSeller.Add(新雇员(“Isak Frisjespesen”,991132,“Skåne”,80));
ObjSeller.Add(新雇员(“Maja olofsson”,974132,“Täby”,123));
ObjSeller.Add(新雇员(“Annmarie norberg”,944432,“Täby”,230));
ObjSeller.Add(新雇员(“Ulla persson”,9312332,“Uppland”,124));
ObjSeller.Add(新雇员(“Christer Nilsen”,9988332,“Vallentuna”,444));
Console.WriteLine(“Namn Personnummer Distrikt Antal”);
//在这里,员工会根据他们的销售价格分组。
foreach(员工在ObjSeller)
{

如果(e.amountsell>0&&e.amountsell 90&&e.amountsell您没有关闭流写入程序,因此它正在内存中缓冲输出,但没有写入文件。请尝试“使用”语句:

using(StreamWriter SW = new StreamWriter("important.txt"))
{
    foreach(Emplooye i in group1)
    {
        SW.WriteLine(i.ToString());
    }

    foreach(Emplooye i in group2)
    {
        SW.WriteLine(i.ToString());
    } 

    foreach(Emplooye i in group3)
    {
        SW.WriteLine(i.ToString());
    }
}

您没有关闭流写入程序,因此它正在内存中缓冲输出,但没有写入文件。请尝试“使用”语句:

using(StreamWriter SW = new StreamWriter("important.txt"))
{
    foreach(Emplooye i in group1)
    {
        SW.WriteLine(i.ToString());
    }

    foreach(Emplooye i in group2)
    {
        SW.WriteLine(i.ToString());
    } 

    foreach(Emplooye i in group3)
    {
        SW.WriteLine(i.ToString());
    }
}

1) 您忘记关闭编写器。2)“important.txt”
是指向应用程序当前目录的相对路径。在调试过程中,该相对路径指向
bin\Debug
。您正在查看正确的文件吗?只需使用该文件。writeAllines()方法。请帮自己一个忙,打开此文件后,在Visual Studio中点击
CTRL
+
K
+
D
(格式代码)。FYI-
group3.Sort(委托(Emplooye t1,Emplooye t2){return(t1.amountsell.CompareTo(t2.amountsell));}
-可以重写为
group3.Sort((x,y)=x.AutoTr.Cuffalto(Y.AuthToRead); -更短并且看起来更好-但是由于您正在用同样的信息一次又一次地排序,所以您应该考虑在<代码> SeopoYy类中实现<代码>可比较的< /代码>,而不只是调用<代码>列表> SO()。
并且它将根据您的
IComparable的实现进行排序
@PanagiotisKanavos说:“如果我添加了它,就不能写入一个封闭的TextWriter”。2)是的,我想我正在查看正确的文件,因为它添加了System.Collections.Generic.List`1[InlämningSuppligit2.Emplooye],现在每次我在实现“使用(StreamWriter SW=new StreamWriter(“important.txt))1)您忘记关闭编写器。2)“important.txt”是指向应用程序当前目录的相对路径。在调试过程中,该相对路径指向
bin\Debug
。您正在查看正确的文件吗?只需使用文件。writeallines()方法。请帮自己一个忙,打开此文件后,在Visual Studio中点击
CTRL
+
K
+
D
(格式代码)。FYI-
group3.Sort(委托(Emplooye t1,Emplooye t2){return(t1.amountsell.CompareTo(t2.amountsell));}
-可以重写为
group3.Sort((x,y)=x.AutoTr.Cuffalto(Y.AuthToRead); -更短并且看起来更好-但是由于您正在用同样的信息一次又一次地排序,所以您应该考虑在<代码> SeopoYy类中实现<代码>可比较的< /代码>,而不只是调用<代码>列表> SO()。
并且它将根据您的
IComparable的实现进行排序
@PanagiotisKanavos说:“如果我添加了它,就不能写入一个封闭的TextWriter”。2)是的,我想我正在查看正确的文件,因为它添加了System.Collections.Generic.List`1[InlämningSuppligit2.Emplooye],现在每次我在实现“使用(StreamWriter SW=newstreamwriter(“important.txt))感谢您的回复,System.Collections.Generic.List`1[Inlämningsuppgif