private void DownloadSort(TransferObjectModel transferObject) { if (Downloads.Contains(transferObject)) { if (!Downloads.Remove(transferObject)) { return; } } var inserted = false; for (var i = 0; i <= Downloads.Count - 1; i++) { if ((int)transferObject.Status <= (int)Downloads[i].Status) { Downloads.Insert(i, transferObject); inserted = true; break; } } if (!inserted) { Downloads.Add(transferObject); } }