protected void SortComponentsByStackOrder() { IEnumerable <IGameComponent> query = components.OrderBy(comp => ((IStackable)comp).StackOrder); sortedComponents.Clear(); for (int i = 0; i < query.Count(); i++) { sortedComponents.Add(query.ElementAt(i)); } }