如何从类中删除属性
本文关键字:删除 属性 | 更新日期: 2023-09-27 18:26:35
我正在通过EF查询数据库,并返回一个List<T>
。
我使用类似的代码太
var result = (from m in model
select new
{
Id = m.Id,
Dependency = m.Dependency,
Description = m.Description
}).ToList();
这很好,但现在,我可能不想显示Dependency
或Description
(取决于传递给函数的参数值)。实际上有大约10个属性,我只展示了2个,以保持代码的小
我不知道如何删除值或属性。
当我创建匿名类时,我不能有if/else语句,因为它是匿名的,所以所有属性都是只读的,所以我不能使用它是IQueryable
的事实来将值设置为null或0!
var result = (from m in model
select new
{
Id = m.Id,
Dependency = shouldShow ? m.Dependency : null,
Description = shouldShow ? m.Description : null
}).ToList();
在我看来,您希望在这里使用工厂模型设计模式。这意味着您应该为所有潜在的结果类都有一个类。
Factory Model在其他地方有非常详细的介绍,可以通过谷歌搜索找到——您创建一个类,给定的参数将"生成"输入参数所需类型的对象。