Просто убедитесь, что пустое значение phonelist
является значением []
вместо значения nil
.
В качестве альтернативы, значение nil
является фальси в Ruby, поэтому вы можете использовать ноль-наказание
if phonelist
phonelist.each do |phone|
...
Если вы перейдете от синтаксического сахара LINQ, это возможно:
var goodProds = dataContext.Products.Where(MyExpressions.IsAGoodProduct());
Без него это невозможно.
Ничто не помешает вам смешать два стиля для создания единого запрос
Пример:
var goodProds = from p in dataContext.Products
.Where(MyExpressions.IsAGoodProduct())
group p by p.Category into g
select new {Category = g.Key, ProductCount = g.Group.Count()};
Между прочим, я наткнулся на эту полезную статью , в которой объясняется, как можно создавать динамические запросы LINQ, которые ссылаются на функции, заключенные в выражения, используя собственное расширение ToExpandable (). метод. Предоставленное решение можно использовать в различных частях запроса LINQ, сохраняя при этом использование синтаксиса понимания вместо использования синтаксиса лямбда.