2015-12-15 59 views
2

我現在有這個設置爲顯示信用卡的輸入和輸出進行排序:如何將一個變量在一個單獨的方法

static void ViewReport(ArrayList paymentReport) //Displays the current payments in a list 
    { 
     //Activated if the user hits the v or V key 
     Console.WriteLine("\n{0,-5}{1,-25}{2,-15}{3,-15}{4,-15}", "Plan", "Number", "Balance", "Payment", "APR"); 

     foreach (PaymentPlan creditCard in paymentReport) 
     { 
      Console.WriteLine("{0,-5}{1,-25}{2,-15}{3,-15}{4,-15}", 
       creditCard.PlanNumber, 
       creditCard.CardNumber, 
       creditCard.CreditBalance, 
       creditCard.MonthlyPayment, 
       creditCard.AnnualRate); 
     } 
    } 

我要創建需要排序creditCard.CreditBalance從最低到最高單獨的方法。那麼,哪種方法可以排列creditCard.CreditBalance的列表,然後在用戶下一次再次打開它時反映出ViewReport

+6

你爲什麼要使用'ArrayList'是從.NET 1.0的傳統類型?實際上,你應該使用泛型,比如'List '。在新的開發中幾乎沒有理由使用'ArrayList',我能想到的唯一的事情就是使用'ArrayList'編寫的庫(這可能是非常罕見的事件) –

+0

其實我是之前使用列表,但項目需求需要ArrayList。 – Seashorphius

回答

3

LINQ OrderBy

foreach (PaymentPlan creditCard in paymentReport.Cast<PaymentPlan>().OrderBy(o=>o.CreditBalance)) 

要更改爲了永久結果分配給您的變量:

paymentReport = paymentReport.Cast<PaymentPlan>().OrderBy(o=>o.CreditBalance).ToArray(); 
+0

請注意,這不會修改'paymentReport'的順序,只是這個'foreach'將處理列表中的項目。 (來自OP的描述,看起來他期待能夠永久改變訂單的解決方案) –

+0

史詩般快速。不錯的一個'+一個':) –

+0

這將是正確的,它需要永久改變順序。 – Seashorphius

相關問題