重构 If 语句的最佳方法

Best way to refactor If-statement

我有以下代码:

                            if (adSetting.Core_standard_application_role)
                            {
                                rc = new IntegrationRoleCompany();
                                rc.RoleCompany = firmSettings.FirmNo.ToString();
                                rc.RoleName = "Core standard application role";
                                rcList.Add(rc);
                            }
                            if (adSetting.Expense_Invoice_Application_Access)
                            {
                                rc = new IntegrationRoleCompany();
                                rc.RoleCompany = firmSettings.FirmNo.ToString();
                                rc.RoleName = "Expense Invoice Application Access";
                                rcList.Add(rc);
                            }

问题是我在检查 addSetting.Property 的地方有 20 个 if-checks。现在回答问题:

重构此 if 语句的最佳和最有效的方法是什么?

您可以使用 adSetting.STUFF_AS_STRING -> rc.RoleName 映射得到一个 20x2 数组。

然后在 for 循环中遍历数组

伪代码:

for (var i=0; i<theArray.length; i++) {
    adSettingStr, RoleName = theArray[i]
    if (adSetting[adSettingStr]) {
        rc = new IntegrationRoleCompany();
        rc.RoleCompany = firmSettings.FirmNo.ToString();
        rc.RoleName = RoleName;
        rcList.Add(rc);
    }

}