构建表达式树重构getter属性的return语句

问题描述

我有一个 getter 方法

private IEnumerable<IMetaComponent> ValidComponents
    {
        get
        {
            IQueryable<Component> listofComponentsNotLive = ComponentDAO.GetPendingComponents(Bundle.Domain);
            
            return listofComponentsNotLive.Any() ? 
                Bundle.Components
                .Where(c =>
                    !c.JoinTable
                    && !c.Analytics
                    && !c.SubTable
                    && c.Custom
                    && AccessManager[c,AccessFlags.AdminRead]
                    && !listofComponentsNotLive.Any(component => component.Id == c.Id)
                )
                : Bundle.Components
                .Where(c =>
                    !c.JoinTable
                    && !c.Analytics
                    && !c.SubTable
                    && c.Custom
                    && AccessManager[c,AccessFlags.AdminRead]
                );
        }
    }

有没有其他方法可以优雅地处理 return 语句?我想以某种方式创建一个动态表达式查询,我可以将其传递给 where 子句,该查询解决三元运算符的 else 部分中大部分相似代码的问题。 仅供参考,我不想使用 LinqKit 的 PredicateBuilder。请建议是否有任何其他方法可以做到这一点。提前致谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)