Я хочу отфильтровать список, добавив предложение where зависит от того, имеет ли свойство, требуемое в предложении where, значение null во входном параметре, а затем добавляйте его только в предложение where, иначе не добавляйте его. Если оба не равны нулю, отфильтруйте оба свойства. В приведенном ниже примере есть три условия if, можем ли мы объединить их в одно выражение lamda?
public class Employee
{
public int? Property1 { get; set; }
public int? Property2 { get; set; }
public Employee GetEmployeeByProperty(Employee employee)
{
Employee filteredEmployee = new Employee();
List<Employee> employees = new List<Employee>();
// Logic to fill employee list
#region Can we combine these conditions into one lamda expressoin
if (employee.Property1 != null && employee.Property2 != null)
filteredEmployee = employees.FirstOrDefault(r => r.Property1 == employee.Property1 && r.Property2 == employee.Property1);
else if (employee.Property1 != null)
filteredEmployee = employees.FirstOrDefault(r => r.Property1 == employee.Property1);
else if (employee.Property2 != null)
filteredEmployee = employees.FirstOrDefault(r => r.Property2 == employee.Property2);
#endregion
return filteredEmployee;
}
}
Любая подсказка поможет.