У меня есть метод прямо сейчас, который перебирает список бизнес-объектов (свойство Свойства), чтобы проверить, является ли свойство 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() '- путь, который нужно сделать. –
@callum Это дало мне ошибку компилятора когда у меня был только .Count(), поэтому мне пришлось вызвать ToList(). Если я не назвал это неправильным ... – mint
@snow: Странно, он должен работать. По крайней мере это делает: 'var strs = new [] {" "," lol ", null}; Console.WriteLine (strs.Where (s => string.IsNullOrEmpty (s)). Count()); ' –