Привет У меня есть следующий код:LINQ и ReSharper
if (!_jobs.Any(j => j.Id == emailJob.Id))
{
}
Этот код должен найти какие-либо элементы, которые удовлетворяют условию. Поэтому я хотел бы предположить, что он должен вернуться после того, как найти первый элемент, что-то вроде этого:
if (!_jobs.FirstOrDefault(j => j.Id == emailJob.Id) != null)
{
}
Resharper пытается упростить это выражение LINQ к:
if (_jobs.All(j => j.Id != emailJob.Id))
{
}
Это кажется менее эффективным для меня, потому что у него есть чтобы проверить, что каждый элемент удовлетворяет обратному условию.
Извините, если я просто не понимаю, как работает LINQ.
Джо
Это зависит, действительно. –
вам нужно будет проверить весь список, если все они будут отличаться от этого Идентификатора в любом случае. Даже в первом примере. –
Как вы можете сказать, что у человека X нет красных носков, когда в ящике все еще есть носок, на который вы еще не смотрели? –