mercredi 17 février 2016

Refactorting messy if else statement

I am working on a legacy code base which has the following snippet:

if ((results[0].Length == 0))
                customerName = "";
            else
                customerName = results[0].Substring(18);
            if ((results[1].Length == 0))
                meterSerialNumber = "";
            else
                meterSerialNumber = results[1];
            if ((results[2].Length == 0))
                customerID = "";
            else
                customerID = results[2];
            if ((results[3].Length == 0))
                meterCreditAmount = "";
            else
                meterCreditAmount = results[3];
            if ((results[4].Length == 0))
                debtInstallmentDeduction = "";
            else
                debtInstallmentDeduction = results[4];
            if ((results[5].Length == 0))
                vatOnEnergyAmount = "";
            else
                vatOnEnergyAmount = results[5];
            if ((results[6].Length == 0))
                vatOnDebt = "";
            else
                vatOnDebt = results[6];
            if ((results[7].Length == 0))
                outstandingDebtAmount = "";
            else
                outstandingDebtAmount = results[7];
            if ((results[8].Length == 0))
                tariffCategory = "";
            else
                tariffCategory = results[8];
            if ((results[9].Length == 0))
                tariffId = "";
            else
                tariffId = results[9];
            if ((results[10].Length == 0))
                encryptedToken1 = "";
            else
                encryptedToken1 = results[10];
            if ((results[11].Length == 0))
                encryptedToken2 = "";
            else
                encryptedToken2 = results[11];
            if ((results[12].Length == 0))
                encryptedToken3 = "";
            else
                encryptedToken3 = results[12];
            if ((results[13].Length == 0))
                encryptedToken4 = "";
            else
                encryptedToken4 = results[13];
            if ((results[14].Length == 0))
                systemMessage = "";
            else
                systemMessage = results[14];
            if ((results[15].Length == 0))
                customerMessage = "";
            else
                customerMessage = results[15];
            if ((results[16].Length == 0))
                predefinedMessage = "";
            else
                predefinedMessage = results[16];
            if ((results[17].Length == 0))
                transactionAcknowledgeNumber = "";
            else
                transactionAcknowledgeNumber = results[17];

What would be the best way to refactor this for acceptable coding standards? Would it be acceptable to make this a case statement instead?

Aucun commentaire:

Enregistrer un commentaire