using System.Collections.Generic;
private static List<Data> datas;
public static void Main()
datas = new List<Data>();
for (int i = 0; i < 4; ++i){
datas.Add(new Data{Id = i});
foreach (Data data in datas.OrderByDescending(d => d.Visible).ThenByDescending(d => d.Order))
public static void SetVisible(int id){
for (int i = 0; i < datas.Count; ++i){
datas[i] = new Data { Visible = true, Id = datas[i].Id, Order = datas[i].Order+1};
datas[i] = new Data{ Visible = true, Id = datas[i].Id, Order = 1 };
public bool Visible { get;set;}
public int Order { get;set;}
public override string ToString(){
return "Visible: " + Visible + ", Id: " + Id + ", Order: " + Order;