Добавлю свою ложку дегтя плюсом к предыдущим ответам
1) query.Count() > 0 если это метод из Linq а не определенный в классе то лучше так не делать. Он переберет весь IEnumerable, а оно вам надо? Если нужно проверить есть ли в последовательности элементы используйте query.Any()
2)в if-ах можно определить только запрос. а далее просто
if (query.Any())
{
ViewData["uncheckedProfiles"] = query.ToPagedList(pageNumber, pageSize);
}
else
{
ViewData["uncheckedProfilesSearch"] = "NoResult";
}
или
3) думаю можно что-то сделать с вашими ToUpper(). например почему бы сразу не привести все что нужно (если оно нужно) к верхнему регистру и не делать лишних операций. потому что судя по описанию на MSDN ToUpper() выдает копию строки, то есть это как минимум каждый раз инициализация переменной и копирование из одной переменной в другую. А вообще почитайте про работу со строками с точки зрения внутреннего устройства, например рихтера "CLR via C#"
4) вообще судя по вашему запросу у вас рознится только часть Where. в остальном это один и тот же Linq. То есть можно написать все красивее, пошагово определив все состовляющие.
var query = MongoDBInstance.GetMongoDatabase.GetCollection<User>("UserInfo")
.AsQueryable<User>();
if (!string.IsNullOrEmpty(searchByName)) {
var upperCaseSearchString = searchByName.ToUpper()
string[] names = upperCaseSearchString.Split(' ');
if (names.Length > 1) {
query = query.Where(i=>
!i.IsActivated && ((
i.Name.ToUpper().Contains(names[0]) &&
i.LastName.ToUpper().Contains(names[1])) ||
(i.Name.ToUpper().Contains(names[1]) &&
i.LastName.ToUpper().Contains(names[0]))));
}
else {
query = query.Where(i=>
!i.IsActivated && (
i.Name.ToUpper().Contains(upperCaseSearchString) ||
i.LastName.ToUpper().Contains(upperCaseSearchString)));
}
}
else {
query = query.Where(i=>!i.IsActivated);
}
query = query.OrderBy(i=>i.ID);
if (query.Any()) {
ViewData["uncheckedProfiles"] = query.ToPagedList(pageNumber, pageSize);
}
else {
ViewData["uncheckedProfilesSearch"] = "NoResult";
}
За скобки не ручаюсь, писал прям в редакторе тостера