public List <ContainerCooledValuable> getContainersCooledValuableSorted(List <IContainer> containers) { List <IContainer> clonedList = new List <IContainer>(containers); List <ContainerCooledValuable> sortedList = new List <ContainerCooledValuable>(); foreach (ContainerCooledValuable container in containers.OfType <ContainerCooledValuable>()) { ContainerCooledValuable maxContainerCooled = getMaxWeightContainerCooledValuable(clonedList); sortedList.Add(maxContainerCooled); clonedList.Remove(maxContainerCooled); } return(sortedList); }
public ContainerCooledValuable getMaxWeightContainerCooledValuable(List <IContainer> containers) { int maxWeight = 0; ContainerCooledValuable maxWeightContainer = null; foreach (ContainerCooledValuable container in containers.OfType <ContainerCooledValuable>()) { if (container.weight > maxWeight) { maxWeightContainer = container; maxWeight = container.weight; } } return(maxWeightContainer); }