정렬조건
1순위) 좋아하는 영웅
2순위) id 빠른 순(오름차순)
heros.Sort((Hero a, Hero b) => {
if (a.LIKE && !b.LIKE)
{
return -1;
}
else if (!a.LIKE && b.LIKE)
{
return 1;
}
return a.ID.ToString().CompareTo(b.ID.ToString());
});
heros.Sort(delegate (Hero a, Hero b) {
if (a.LIKE && !b.LIKE)
{
return -1;
}
else if (!a.LIKE && b.LIKE)
{
return 1;
}
return a.ID.ToString().CompareTo(b.ID.ToString());
});
0 - id : 2 / name : Spider Man / like : True
1 - id : 3 / name : Hawk Eye / like : True
2 - id : 5 / name : Ant Man / like : True
3 - id : 1 / name : Iron Man / like : False
4 - id : 4 / name : Doctor Strange / like : False
5 - id : 6 / name : Black Widow / like : False
using System;
using System.Collections;
using System.Collections.Generic;
namespace algorithm_cs
{
public class Marvel
{
struct Hero
{
int id;
public int ID => id;
string name;
public string NAME => name;
bool like;
public bool LIKE => like;
public Hero (int i, string s, bool b)
{
id = i;
name = s;
like = b;
}
}
List<Hero> heros = null;
public Marvel()
{
heros = new List<Hero>();
}
~Marvel()
{
heros = null;
}
public void Init()
{
heros.Add(new Hero(1, "Iron Man", false));
heros.Add(new Hero(2, "Spider Man", true));
heros.Add(new Hero(3, "Hawk Eye", true));
heros.Add(new Hero(4, "Doctor Strange", false));
heros.Add(new Hero(5, "Ant Man", true));
heros.Add(new Hero(6, "Black Widow", false));
}
public void SortHeros()
{
heros.Sort((Hero a, Hero b) => {
if (a.LIKE && !b.LIKE)
{
return -1;
}
else if (!a.LIKE && b.LIKE)
{
return 1;
}
return a.ID.ToString().CompareTo(b.ID.ToString());
});
}
public void PrintResult()
{
for (int i = 0 ; i < heros.Count; ++i)
{
Console.WriteLine(i + " - id : " + heros[i].ID + " / name : " + heros[i].NAME + " / like : " + heros[i].LIKE);
}
}
}
public class Execute
{
static void Main(string[] args)
{
Marvel marvel = new Marvel();
marvel.Init();
marvel.SortHeros();
marvel.PrintResult();
}
}
}