Используйте метод OfType
для фильтрации объектов по их типу, затем используйте метод Where
для фильтрации по имени:
var query = objects.OfType<Employee>()
.Where(e => e.Name == "John")
.Select(e => e.EmployeeId);
Это вернет идентификаторы сотрудников для всех сотрудников с именем «Джон».Если вы ожидаете, что только один человек будет соответствовать этим критериям, вы можете заменить метод Where
на Single
, или если вы хотите получить первый результат, используйте First
.Однако, если вы ожидаете одного человека, но не знаете, существует ли он, вы можете использовать SingleOrDefault
:
Employee result = objects.OfType<Employee>()
.SingleOrDefault(e => e.Name == "John");
if (result != null)
{
Console.WriteLine(result.EmployeeId);
}