简化if语句

Ane*_*ook 0 .net c# linq if-statement

我该如何简化这样的陈述:

    var someList = new List<someType>();

    if (String.IsNullOrEmpty(groupId))
    {
        someList = CTX.Values.Include(c => c.Customer).ToList();
    }
    else
    {
        someList = CTX.Values.Include(c => c.Customer).Where(c => c.GroupId== groupId).ToList();

    }
Run Code Online (Sandbox Code Playgroud)

区别仅在于.Where(c => c.GroupId== groupId).是否可以String.IsNullOrEmpty(groupId)在查询语句中包含条件?

Cod*_*aos 7

您可以通过多个步骤构建查询.只需WheregroupId非空时添加零件.

只有在您打电话后才会执行查询ToList().

var values = CTX.Values.Include(c => c.Customer);

if(!String.IsNullOrEmpty(groupId))
  values = values.Where(c => c.GroupId == groupId);

someList = values.ToList();
Run Code Online (Sandbox Code Playgroud)