Whenever you need a unique anything, you need a Set or a Map, depending on the circumstances. For example, unique values by Age:
Map<Decimal, SObjType> uniqueAges = new map<Decimal, SObjType>();
for(SObjType record: recordList) {
if(!uniqueAges.containsKey(record.Age__c)) {
uniqueAges.put(record.Age__c, record));
}
}
SObjType[] uniqueList = uniqueAges.values();
This is obviously more pseudo-code, but you should be able to work it out from here.
More generically, you can write a method for this:
public static SObject[] getUniqueValues(SObject[] records, SObjectField field) {
Map<Object, SObject> uniqueValues = new Map<Object, SObject>();
for(SObject record: records) {
if(!uniqueValues.containsKey(record.get(field))) {
uniqueValues.put(record.get(field), record);
}
}
return uniqueValues.values();
}