2016-08-23 49 views
2

目前,這是我的PrintNode()方法和它給我我將如何構造PrintNode()方法?

交易編號:

日期/////////////////////說明// ///// DebitCredit /////金額

12345678:2012/01/15(絕對)100

,我想的值被放到正確的位置。

12345678應當根據Trasaction號:

2012/01/2015下日期

我怎麼會格式化呀? (對不起,如果這是一個可怕的問題,我還是新的),找出了方法,但我不知道如何「美化」它。

public void PrintNodes(LinkedList<Transactions> values) 
 
     { 
 
      if (values.Count != 0) 
 
      { 
 
       txtOutput.Text += "Transaction Details for Account No" + + ":" + "\r\n" + "Date\t\tDescription\tDebitCredit\tAmount"; 
 

 
       foreach (Transactions t in values) 
 
       { 
 
        txtOutput.Text += "\r\n" + t + "\t"; 
 
        txtOutput.Text += "\t"; 
 
       } 
 
       txtOutput.Text += "\r\n"; 
 
      } 
 
      else 
 
      { 
 
       txtOutput.Text += "The Doubly Linked List is empty!"; 
 
      } 
 

 
     }

+0

可以使用的String.Format或字符串插值。見[link] http://stackoverflow.com/documentation/c%23/24/c-sharp-6-0-features/49/string-interpolation#t=201608230825425794575 [/ link]和[link] http:/ /stackoverflow.com/documentation/c%23/79/string-format#t=201608230827059251396[/link] – Anton

回答

2

試試這個片段代替,看看其中的差別

public void PrintNodes(LinkedList<Transactions> values) 
    { 
     if (values != null && values.Count > 0) 
     { 
      int accountNumber = 1000001; 
      StringBuilder builder = new StringBuilder(); 
      builder.Append($"Transaction Details for Account No. {accountNumber}"); 
      builder.Append(Environment.NewLine); 
      builder.Append("Date\t\tDescription\t\tDebitCredit\t\tAmount"); 
      builder.Append(Environment.NewLine); 
      foreach (Transactions t in values) 
      { 
       builder.Append($"{t.Date}\t\t{t.Description}\t\t{t.DebitCard}\t\t{t.Amount}"); 
       builder.Append(Environment.NewLine); 
      } 
      txtOutput.Text += builder.ToString(); 
     } 
     else 
     { 
      txtOutput.Text = "The list is empty!"; 
     } 
    } 
+0

構建器追加什麼?對不起這些愚蠢的問題:/它只是很好地知道它在使用它時會發生什麼。haha – Anon

+0

它用來代替字符串+ =「line」..不管你是否使用它,這是讓你的代碼更具可讀性和組織性的東西。 –

+0

啊謝謝。這非常有幫助! – Anon