private List <PersonsPairWithAgeDifference> GetPersonPairsWithAgeDifference() { var personPairs = new List <PersonsPairWithAgeDifference>(); for (var i = 0; i < _persons.Count - 1; i++) { for (var j = i + 1; j < _persons.Count; j++) { var pair = new PersonsPairWithAgeDifference(); if (_persons[i].BirthDate < _persons[j].BirthDate) { pair.YoungerPerson = _persons[i]; pair.OlderPerson = _persons[j]; } else { pair.YoungerPerson = _persons[j]; pair.OlderPerson = _persons[i]; } pair.AgeDifference = pair.OlderPerson.BirthDate - pair.YoungerPerson.BirthDate; personPairs.Add(pair); } } return(personPairs); }
public PersonsPairWithAgeDifference FindBy(PairingCriteria pairingCriteria) { var personPairs = GetPersonPairsWithAgeDifference(); var targetPair = new PersonsPairWithAgeDifference(); if (personPairs.Any()) { targetPair = FindPairByCriteria(personPairs, pairingCriteria); } return(targetPair); }