Как сказал DevilSuichiro в комментариях, вы не должны бросать на IEnumerable<T>
, просто позвоните .AsEnumerable()
, это сохранит лень.
Но в вашем случае, похоже, вам это вообще не нужно, потому что First
или FirstOrDefault
работают и с IQueryable
.
Чтобы получить одно поле, используйте этот код
clientsCollection
.Where(p => p.ID == edit.Clients_ID)
.Select(p => p.ProjectNo)
.First() // if you sure that at least one item exists
Или (более безопасно)
var projectNum = clientsCollection
.Where(p => p.ID == edit.Clients_ID)
.Select(p => (int?)p.ProjectNo)
.FirstOrDefault();
if (projectNum != null)
{
// you find that number
}
else
{
// there is no item with such edit.Clients_ID
}
Или еще проще с нулевым распространением
var projectNum = clientsCollection
.FirstOrDefault(p => p.ID == edit.Clients_ID)?.ProjectNo;