我写了一个非常凌乱的代码,只是因为我不知道如何遍历多个对象列表。
代码正在按预期的方式工作,但我对此没有信心。
有人知道如何重构这种代码以使其更具可读性吗?
foreach (var outlet in merchant.Outlets)
{
if (outlet != null)
{
foreach (var terminal in merchant.Terminals)
{
if (terminal != null)
{
foreach (var agreement in terminal.AssociateAgreements)
{
var bankInfo = new Bank();
if (agreement != null)
{
bankInfo.UniqueID = AgreementUniqueCode + agreement.ID;
bankInfo.BankBIC = agreement.BankAccountInformation.SwiftBIC;
bankInfo.BankName = agreement.BankAccountInformation.BankName;
bankInfo.Address =
AddressEntityToAddress(agreement.BankAccountInformation.BankAddress,
BankingType);
bankInfo.type = BankType;
}
banksAccountInformation.Add(bankInfo);
}
}
}
}
}
最佳答案
您还可以使用linq查询语法:
var outletQuery = from outlet in merchant.Outlets
where outlet != null
select outlet;
var agreementQuery = from terminal in merchant.Terminals
where terminal != null
from agreement in terminal.AssociateAgreements
select agreement;
foreach (var outlet in outletQuery)
{
foreach (var agreement in agreementQuery)
{
ProcessAgreement(agreement);
}
}
关于c# - 减少代码C#中的多个foreach循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37205893/