簡體   English   中英

C#打印列表問題

[英]C# print list issue

我正在使用GUI作為客戶端進行WCF服務,但是我在打印當前添加的項目列表時遇到問題。 我有一個代碼可將新條目添加到列表中:

    public bool Add_Data(Data sample)
    {
        container.Add(sample);
        Console.WriteLine("New record added!");
        return true;
    }

並且它正在工作,但是當我嘗試第一次嘗試查看添加的記錄時,它會工作,但是,如果我想再次查看它,列表將添加相同的元素。 向您展示其工作原理:

  1. 我要添加新條目並“打印”列表: IMAGE CLICK [應該如何工作]
  2. 但是我想再次看到它,所以我在表單中按了相同的按鈕,結果如下:如您所見, IMAGE CLICK ,我們有列表+其他相同的記錄,如果我再按一次按鈕,我會有3條相同的記錄。

這是我的“顯示記錄”代碼:

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

如果您知道如何解決,請告訴我。

您需要研究可變范圍。 您在Show_Data()方法之外聲明了結果。 每次調用該方法時,您都在執行result += final_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();                  
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM