繁体   English   中英

c#如何使用流读取器将文件中的数据添加到数组并通过计算将其打印出来?

[英]c# How to add data from a file to array using streamreader and print it out with a calculation?

我有以下代码从csv文件读取值并进行一些处理。 关键是要处理并打印数据,直到每笔贷款达到零。 我特别需要按照以下说明打印出来:

CSV文件数据:

20000,0.003,2000
41000,0.0025,2200

第1个月:

汽车贷款1:
剩余余额:$ xxxxx
支付给校长:$ xxxxx
支付利息:$ xxxxx

汽车贷款2:
剩余余额:$ xxxxx
支付给校长:$ xxxxx
支付利息:$ xxxxx

第二个月...

ETC ...直到剩余余额为零。

目前,我只能让它输出Car Loan 1的数据,直到Remaining Balance达到零,然后才开始输出Car Loan 2的数据。

我的代码:

CarLoan[] objCarLoan = new CarLoan[3];

    public static void LoadData(ref CarLoan[] objCarLoan, string filePath)
    {
        StreamReader reader = new StreamReader(filePath);
        for (int i = 1; i < objCarLoan.Length; i++)
        {
            objCarLoan[i] = new CarLoan();
            objCarLoan[i].startingTotal = Convert.ToDecimal(reader.ReadLine().Replace(',', '\n'));
            objCarLoan[i].monthlyInterest = Convert.ToDecimal(reader.ReadLine().Replace(',', '\n'));
            objCarLoan[i].monthlyPayment = Convert.ToDecimal(reader.ReadLine().Replace(',', '\n'));
        }
        reader.Close();
    }

    public void CarLoanCalculations()
    {
        //Console.WriteLine("\t Remaining Balance: " + (startingTotal - monthlyPayment));
        while (startingTotal > 0)
        {
            if (startingTotal >= 0)
            {
                startingTotal -= monthlyPayment;
                Console.WriteLine("Remaining Balance: " + startingTotal.ToString("C"));
                Console.WriteLine("Payment to Principal: " + paymentToPrincipal.ToString("C"));
                Console.WriteLine("Payment to Interest: " + paymentToInterest.ToString("C"));
                Console.WriteLine("--------------------");
            } else
            {
                Console.WriteLine("Balance: 0");
            }
        }
    }

    public static void DisplayMonthlyPayments(CarLoan[] objCarLoan)
    {
        for (int i = 1; i < objCarLoan.Length; i++)
        {
            Console.WriteLine("Car Loan" + i);
            objCarLoan[i].CarLoanCalculations();
        }
        Console.ReadLine();
    }       

如果您阅读的是更多行,则应阅读一行然后将其拆分,然后可以使用ex-

objCarLoan[i] = new CarLoan();
string[] line = reader.ReadLine().Split(',');
objCarLoan[i].startingTotal = Convert.ToDecimal(line[0]);
objCarLoan[i].monthlyInterest = Convert.ToDecimal(line[1]);
objCarLoan[i].monthlyPayment = Convert.ToDecimal(line[2]);

试试这个,告诉我它是否有效

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM