Saving from List to txt

后端 未结 7 1802
生来不讨喜
生来不讨喜 2020-12-03 13:26

I want my program to read from two text files into one List. The List is sorting and cleaning duplicates.

I want the

相关标签:
7条回答
  • 2020-12-03 13:53

    It's this line which writes the ToString representation of the List, resulting into the text line you got:

    StreamWriter file = new System.IO.StreamWriter(speichern);
    file.WriteLine(ausgabeListe);
    file.Close();
    

    Instead you want to write each line.

    StreamWriter file = new System.IO.StreamWriter(speichern);
    ausgabeListe.ForEach(file.WriteLine);
    file.Close();
    
    0 讨论(0)
  • 2020-12-03 13:58

    You are writing the list object into the file, so you see the type name.

    Just as you are using ForEach to write the contents to the Console, you need to iterate over ausgabeListe, calling WriteLine() for each item in the list.

    0 讨论(0)
  • 2020-12-03 13:59

    I am using the LINQ like below to write each line to text file.

    var myList=new List<string>
    {
        "Hello",
        "World"
    };
    using (var file = new StreamWriter("myfile.txt"))
    {
        myList.ForEach(v=>file.WriteLine(v));
    }
    
    0 讨论(0)
  • 2020-12-03 14:07

    There's a handy little method File.WriteAllLines -- no need to open a StreamWriter yourself:

    In .net 4:

    File.WriteAllLines(speichern, ausgabeListe);
    

    In .net 3.5:

    File.WriteAllLines(speichern, ausgabeListe.ToArray());
    

    Likewise, you could replace your reading logic with File.ReadAllLines, which returns an array of strings (use ToList() on that if you want a List<string>).

    So, in fact, your complete code could be reduced to:

    // Input
    List<String> data = File.ReadAllLines(pfad + datei)
        .Concat(File.ReadAllLines(pfad2 + datei2))
        .Distinct().ToList();
    
    // Processing
    data.Sort(); 
    
    // Output
    data.ForEach(Console.WriteLine); 
    File.WriteAllLines(speichern, data);
    
    0 讨论(0)
  • 2020-12-03 14:07
    StreamWriter file = new System.IO.StreamWriter(speichern);
    foreach(string x in ausgabeListe)
        file.WriteLine(x);
    file.Close();
    
    0 讨论(0)
  • 2020-12-03 14:12

    Try the code below:

    StreamWriter writer = new StreamWriter("C:\\Users\\Alchemy\\Desktop\\c#\\InputFileFrmUser.csv");
    list = new List<Product>() { new Product() { ProductId=1, Name="Nike 12N0",Brand="Nike",Price=12000,Quantity=50},
            new Product() { ProductId =2, Name = "Puma 560K", Brand = "Puma", Price = 120000, Quantity = 55 },
            new Product() { ProductId=3, Name="WoodLand V2",Brand="WoodLand",Price=21020,Quantity=25},
            new Product() { ProductId=4, Name="Adidas S52",Brand="Adidas",Price=20000,Quantity=35},
            new Product() { ProductId=5, Name="Rebook SPEED2O",Brand="Rebook",Price=1200,Quantity=15}};
    
    foreach (var x in list) {
        string wr = x.ProductId + " " + x.Name + "" + x.Brand + " " + x.Quantity + " " + x.Price;
        writer.Flush();
        writer.WriteLine(wr);
    
    }
    Console.WriteLine("--------ProductList Updated SucessFully----------------");
    
    0 讨论(0)
提交回复
热议问题