void Sort() { //Array.Sort(inventoryItems, //delegate (ItemUI x, ItemUI y) { return x.CompareTo(y); }); List <ItemUI> itemsList = inventoryItems.Values.ToList <ItemUI>(); switch (sortBy) { case SortBy.NAME: itemsList = itemsList.OrderBy(x => x.itemInfo.item_name).ToList(); break; case SortBy.CLASS: itemsList = itemsList.OrderBy(x => x.itemInfo.item_class).ToList(); break; case SortBy.TYPE: itemsList = itemsList.OrderBy(x => x.itemInfo.slot).ToList(); break; default: break; } int i = 0; foreach (var item in itemsList) { if (!equipmentsData.isItemEquipped(item.itemInfo)) { item.transform.SetSiblingIndex(i); item.ShowItem(); i++; } else { item.RemoveItem(); } } }