如何使用Linq获取集合中的所有内容?

时间:2014-09-24 10:30:00

标签: c# linq

我有一个方法可以接受一个可选的int?值作为来自集合的Take的一些项目。如果传递空值,我想返回所有项目。现在我必须复制我的查询来完成这个

if(take == null)
{
     x = db.WalkingDeadEps.Where(x => x.BicyclesCouldHaveSavedLives == true).ToList()
}
else
{
     x = db.WalkingDeadEps.Where(x => x.BicyclesCouldHaveSavedLives == true).Take(take).ToList()
}

有更简单的方法吗?像这样的东西?

.Take(take != null ? take : "all")

1 个答案:

答案 0 :(得分:5)

使用Linq

您可以选择将查询存储在变量中。在您调用ToList或等效方法之前,它不会被执行。

var query = db.WalkingDeadEps.Where(x => x.BicyclesCouldHaveSavedLives == true);
x = take.HasValue ? query.Take(take.Value).ToList() : query.ToList();