C#打印列表问题

C#打印列表问题,c#,list,wcf,record,contract,C#,List,Wcf,Record,Contract,我正在使用GUI作为客户端执行WCF服务,但是我在打印当前添加项的列表时遇到问题。我有一个向列表中添加新条目的代码: public bool Add_Data(Data sample) { container.Add(sample); Console.WriteLine("New record added!"); return true; } 当我试图用first try查看添加的记录时,它工作了,但若我想再次查看,列表会

我正在使用GUI作为客户端执行WCF服务,但是我在打印当前添加项的列表时遇到问题。我有一个向列表中添加新条目的代码:

    public bool Add_Data(Data sample)
    {
        container.Add(sample);
        Console.WriteLine("New record added!");
        return true;
    }
当我试图用first try查看添加的记录时,它工作了,但若我想再次查看,列表会添加相同的元素。要向您展示其工作原理,请执行以下操作:

  • 我正在添加新条目并“打印”列表: [应该如何运作]
  • 但是我想再次看到它,所以我在我的表单中按下了相同的按钮,结果如下:正如你们所看到的,我们有我们的列表+额外的相同记录,如果我再次按下按钮,我将有3条相同的记录
  • 这是我的“显示记录”代码:


    如果您知道如何解决它,请告诉我。

    您需要查看变量范围。您在
    Show_Data()
    方法之外声明了结果。每次调用该方法时,您正在执行
    result+=最终结果正在添加到结果中。尝试下面的代码,您将得到不同的结果

    public string Show_Data()
    {
        Console.WriteLine("Printing records");
        var output = string.Empty;
        foreach (Data record in container)
        {
            string final_result = ("\nID: "+  + record.ID + " " + "product: " + record.product + " " + "category: " + record.category + " " + "price: " + record.price + " " + "quantity: " + record.quantity + " " + "\n ");
            output += final_result;
        }
        return output;                  
    }
    

    此外,我也会考虑使用字符串生成器和字符串格式。

    public string Show_Data()
    {
        Console.WriteLine("Printing records");
        var output = new StringBuilder();
        foreach (Data record in container)
        {
            string final_result = string.Format("ID: {0} product: {1} category: {2} price: {3} quantity: {4}", record.ID, record.product, record.category, record.price, record.quantity);
    
            // if using C# 6
            // string final_result = string.Format($"ID: {record.ID} product: {record.product} category: {record.category} price: {record.price} quantity: {record.quantity)}";
            output.AppendLine(final_result);
        }
        return output.ToString();                  
    }
    

    相关代码是如何调用Show_Data(),未发布。不用担心,很高兴我能帮上忙。
    public string Show_Data()
    {
        Console.WriteLine("Printing records");
        var output = new StringBuilder();
        foreach (Data record in container)
        {
            string final_result = string.Format("ID: {0} product: {1} category: {2} price: {3} quantity: {4}", record.ID, record.product, record.category, record.price, record.quantity);
    
            // if using C# 6
            // string final_result = string.Format($"ID: {record.ID} product: {record.product} category: {record.category} price: {record.price} quantity: {record.quantity)}";
            output.AppendLine(final_result);
        }
        return output.ToString();                  
    }