У меня есть этот код ниже:Как оптимизировать мой, если еще код C#
TryUpdateModel(model);
if (ModelState.IsValid && model.FullNameIsChecked == true && model.LookingFor == null)
{
model.ContactList = contactRepository.GetAll(filter: x => x.UserId == user.Id);
model.ContactList.Sort((x, y) => string.Compare(x.FullName, y.FullName));
}
else if (ModelState.IsValid && model.FullNameIsChecked == false && model.LookingFor == null)
{
model.ContactList = contactRepository.GetAll(filter: x => x.UserId == user.Id);
model.ContactList.Sort((x, y) => string.Compare(x.Email, y.Email));
}
else if (ModelState.IsValid && model.LookingFor != null && model.FullNameIsChecked == true)
{
model.ContactList = contactRepository.GetAll(filter: x => x.UserId == user.Id);
model.ContactList = contactRepository.GetAll(filter: x => x.FullName.Contains(model.LookingFor));
model.ContactList.OrderBy(f => f.FullName);
}
else if (ModelState.IsValid && model.LookingFor != null && model.FullNameIsChecked == false)
{
model.ContactList = contactRepository.GetAll(filter: x => x.UserId == user.Id);
model.ContactList = contactRepository.GetAll(filter: x => x.Email.Contains(model.LookingFor));
model.ContactList.OrderBy(e => e.Email);
}
else
{
model.ContactList = contactRepository.GetAll(filter: x => x.UserId == user.Id);
}
Я использую .NET MVC 5 с двигателем Razor, и с кодом выше я делать операции сортировки. Могу ли я оптимизировать свой Если еще часть кода? Единственное, что у меня на уме, это использовать операционный оператор , но он будет выглядеть почти так же. Заранее спасибо
Это то, что я ищу. Максимум один оператор if внутри оператора If. Отличный ответ. Спасибо ! –
@StoyanPetkov, но он недвусмысленно называет 'GetAll' дважды, что не может быть хорошо. – Jodrell
@Jodrell Да, только что заметил, я не заходил в его бизнес-логику, но определенно его нужно было посмотреть –