Это выполнит то же самое, поскольку вы ищете только один матч, где ID
s равны.
var nameValueObject = iqueryable.First( o => o.ID == int.Parse(key) );
Если вы не хотите, чтобы возникало исключение, если совпадение не найдено, используйте FirstOrDefault
. В этом случае возвращаемое значение может быть нулевым, но если существующий элемент является инвариантом, я бы предпочел использовать First
и аварийно завершить работу.