我現在有一個方法,通過循環業務對象列表(屬性屬性)來測試屬性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