Dictionary item_codedic = new Dictionary();
Dictionary item_namedic = new Dictionary();
struct Str
{
public int[] number;
public int code;
public string name;
public int sum;
}
Str[] strs;
void Str_Setting()
{
int size = 2;
strs = new Str[size];
strs[0].number = new int[3];
strs[0].code = 10;
strs[0].name = "default";
strs[0].number[0] = 1;
strs[0].number[1] = 2;
strs[0].number[2] = 3;
strs[1].number = new int[3];
strs[1].code = 20;
strs[1].name = "abs";
strs[1].number[0] = 2;
strs[1].number[1] = 4;
strs[1].number[2] = 5;
for (int i = 0; i {
strs[i].sum = Sum(strs[i].number);
item_codedic.Add(strs[i].code, strs[i]);
item_namedic.Add(strs[i].name, strs[i]);
}
item_codedic.Add(15, new Str());
Sort_dir();
}
int Sum(int[] _number)
{
int result = 0;
for(int i = 0; i < _number.Length; i++)
{
result += _number[i];
}
return result;
}
void Sort_dir()
{
var rank_desc = item_codedic.OrderByDescending(num => num.Value); // OrderByDescending ์ด Linq์ง์๋ฌธ์ ํจ์์ธ๊ฑด ์๊ฒ ๋๋ฐ, (num => num.Value) << ์ด ๋ถ๋ถ์ด ์ดํด๊ฐ ์๋จ. ๋ญ ๋ปํ๋์ง
var rank_asc = item_codedic.OrderBy(num => num.Value);
foreach(KeyValuePair tt in item_codedic) // ์ ์์ถ๋ ฅ 10, 20 , 15
{
Debug.Log(tt.Key);
}
foreach (var r in rank_desc) //์ค๋ฅ ์์๊ฐ 20, 15, 10
{
Debug.Log(r.Key);
}
foreach (var r in rank_asc) // ์ค๋ฅ ์์๊ฐ 10, 15, 20
{
Debug.Log(r.Key);
}
}
void Start()
{
Str_Setting();
}
Sort_dir() ํจ์ ๋ถ๋ถ์์ ์ฃผ์๋จ ๋ถ๋ถ์ด ์ดํด๊ฐ ์๋๋๋ฐ ์ ์ ๋ ๊ฒ ๊ฐ์ ๋ฃ๋์ง๋
foreach 2,3 ๋ฒ์งธ์์ ์ ์ค๋ฅ๊ฐ ๋จ๋๊ฑธ๊น์ผ..
https://mongyang.tistory.com/108 << ์ฌ๊ธฐ ์ฐธ์กฐํด์ ์ฝ๋ ์ง ๊ฑฐ์์
๋๋ค์์ด๋ผ๊ณ ๊ฒ์ํด๋ณด์ . ์ต๋ช ํจ์๋ฅผ ๋ค๋ฃจ๋ ๋ฌธ๋ฒ์. ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์ ํ๋๋ฐ num.Value๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ผ๋ ๋ป
์ ๊ธฐ์ num์ ์ ์ธ๋์ง ์์ ๋ณ์์ธ๋ฐ ๊ทธ๋ฅ ๋ง์ฐ๋๊ฑด๊ฐ์?? num์ด ํค๊ฐ์ธ์ง๋ฅผ ๋น์ฃผ์ผ์คํ๋์ค๊ฐ ์ด๋ป๊ฒ ํ์ ํ๋์?
์ ๋ ฌ์ ๋น์ฐํ ๋์ ๋๋ฆฌ์ ์์๋ค์ด ๋์์ด๋๊น ๋์ ๋๋ฆฌ์ ์์ํ์ ์ธ KeyValuePair ์์ ๋ช ์ํ์ง ์์๋ ์ถ๋ก ํ ์ ์๊ธฐ๋๋ฌธ์ ํ์ ์ ์์๋ ค์ค๋ ๋๋๊ฑฐ. ๋ง๋ก ํ์ด์ฐ๋ฉด item_codedic ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํด๋ผ. ๋์ ๋๋ฆฌ์ ๊ฐ ์์ num์ ๋ํด์, num.Value ๋ฅผ ๊ธฐ์ค์ผ๋ก. ๊ฐ ๋จ
์ ์คํ๋์ค๊ฐ ๊ทธ๊ฑธ ์ถ๋ก ์ ํด์ฃผ๋๊ตฐ์ ใทใท.. ํน์ ๊ทธ๋ผ foreach ๋ฌธ์ 2๋ฒ์งธ๋ 3๋ฒ์งธ๊ฐ ๋์์ด ์๋๋๋ฐ ์๊ทธ๋ฐ์ง๋ ์์์์๊น์? 1๋ฒ์งธ๊บผ๋ ์ ์ ์ถ๋ ฅ์ด ๋ฉ๋๋ค
IOrderedEnumerator ๋ฅผ ์ง์ ๋ค๋ค๋ณธ์ ์ด ์์ด์ ์ ํํ ์ค๋ช ์ ์ด๋ ค์ด๋ฐ, Str ๊ตฌ์กฐ์ฒด๊ฐ IComparable์ ๊ตฌํํ๊ฒ ์์ ํ๋ฉด ์ผ๋จ ๋์๋ ๊ฐ
struct Str : IComparable ํ ๋ค์. ๋ด๋ถ์ public int CompareTo(object obj) { return 0; } ๋ฉ์๋ ํ๋ ๋ง๋ค์ด๋ณด์
ํด๊ฒฐ๋์์ต๋๋ค ํ๋ ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค