Есть несколько способов сделать это в linq.
Первый - использовать .Where
. Это будет соответствовать вашим потребностям, если может быть больше совпадений
IEnumerable<F_object> result = f_objects.Where(obj=>obj.GetName() == name);
Второй вариант - если вас беспокоит только первое попадание, даже если их может быть больше одного, в этом случае используйте .First
f_object result = f_objects.First(obj=>obj.GetName() == name);
или если ноль попаданий является принятой ситуацией (не исключение)
f_object result = f_objects.FirstOrDefault(Obj=>obj.GetName() == name);
если вам нужен только один удар, используйте .Single
f_object result = f_objects.Single(obj=>obj.GetName() == name);
или если вы можете иметь только один или ноль попаданий, используйте .SingleOrDefault
f_object result = f_objects.SingleOrDefault(obj=>obj.GetName() == name);