我现在有一个方法,通过循环业务对象列表(属性属性)来测试属性SerialNumber
是否是序列号。如果我找到序列号,则退出循环并返回true,否则返回false。此代码的LINQ方法
代码如下:
public bool HasSerialNumber()
{
if (this.Properties != null && this.Properties.Count > 0)
{
foreach (var property in Properties)
{
if (!string.IsNullOrEmpty(property.SerialNumber))
return true;
}
}
return false;
}
有没有更好的办法LINQ这个?
我记住以下几点:
return Properties.Where(x => !string.IsNullOrEmpty(x.SerialNumber)).ToList().Count > 0;
是否有检查非空字符串更好/更快的方法?
即使你的榜样,您可以用'.Count中()'而不是'.ToList()。Count'来加快速度。'Any()'是要走的路。 – 2010-08-10 13:30:09
@callum它给了我一个编译器错误当我只有.Count(),所以我不得不打电话给ToList()。除非我说错了...... – mint 2010-08-10 13:32:05
@snow:奇怪,它应该工作。至少这样做:var strs = new [] {“”,“lol”,null}; Console.WriteLine(strs.Where(s => string.IsNullOrEmpty(s))。Count());' – 2010-08-10 13:35:27