public static void ItemSequence(Item item, Queue<Item> shopListQueue) { if (item.From == null) shopListQueue.Enqueue(item); else { foreach (int itemDescendant in item.From) ItemSequence(GetItemById(itemDescendant), shopListQueue); shopListQueue.Enqueue(item); } }