我在MVC应用程序中有一个模型Auto,它具有如下属性
public string Id { get; set; }
public bool IsOOS{ get; set; }
public string Make { get; set; }
public string Model { get; set; }
[XmlElement(IsNullable = true)]
public DateTime? RegisteredDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
还有一个有这个......
var a = new Auto(){
Id = someIDcomingfromServer,
IsOOS = someOOScomingFromServer,
...
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是...循环遍历这些并查看是否有任何属性现在为null.
我如何循环并查看是否有任何属性(Id,IsOOS等)包含null?
谢谢
那么你可以使用反射来获取所有属性的集合并检查每个属性为null,但为什么不只是显式?
if (Id == null || Make == null || Model == null || RegisteredDate == null)
Run Code Online (Sandbox Code Playgroud)
它更短,更容易理解,没有反射的性能开销,并且不需要那么多的维护.没有"魔法"函数会告诉您类的任何属性是否为null.
我会小心不要以牺牲系统性能为代价来缩短开发时间.在开发中花费一点时间(即使它很繁琐)可以在系统性能上产生巨大的差异.
也就是说,单个Linq查询将是:
bool hasNull =
a.GetType()
.GetProperties()
.Any(prop => prop.GetValue(a, null) == null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
564 次 |
| 最近记录: |