[c#]是否所有在 LINQ 中的三元运算符?

发布时间: 2017/2/26 17:42:43
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

请考虑此函数︰

public List<Employees> getEmployees(....... , int? takeMax = null)
{
    // some code 
    ...

    var items = DB_Context.Employees.Where(%%%%% WHATEVER %%%%).Take(takeMax.HasValue && takeMax.Value > 0 ? takeMax.Value :  ?????? ).ToList();
}

如何在种情况下采取的所有项目 takeMax 为空?

Take()需要 int ,和我不想写东西,如

int total = DB_Context.Employees.Count();
var items = DB_Context.Employees.Where(%%%%% WHATEVER %%%%).Take(takeMax.HasValue && takeMax.Value > 0 ? takeMax.Value :  total ).ToList();

任何替代吗?

解决方法 1:

这是一种方式,在那里仍然要写两行 (像你的示例以计数),但你不需要计算 Count

var query = DB_Context.Employees.Where(%%%%% WHATEVER %%%%);
var items = takeMax.HasValue && takeMax.Value > 0 ? 
                query.Take(takeMax.Value).ToList() : query.ToList();
官方微信
官方QQ群
31647020