public virtual IReadOnlyList <QuantityValues> AllOutputValuesFor(string quantityPath) { if (Results.IsNull()) { return(missingQuantityValuesArray()); } var allValuesForPath = Results.AllValuesFor(quantityPath); //we might not have the right number or the values might not exist for the path if (allValuesForPath.Count == NumberOfItems && allValuesForPath.All(x => x != null)) { return(allValuesForPath); } //In that case, the population size was reduced, does not make sense to keep any value if (NumberOfItems < allValuesForPath.Count) { return(missingQuantityValuesArray()); } return(patchedUpResults(quantityPath)); }