[별아재군/unity2d] string 문자열로 저장된 List<Exam>형 클래스 Sort 정렬하기..
List의 직렬화 및 Json 저장 때문에
클래스 멤버를 모두 string형으로 구성을 했더니..
List형 exam.Sort() 기능을 제대로 사용하지 못하는 문제가 있어서 고민하다가 다른 방법을 찾은 듯 합니다..
List<exam> exam 문제점을 예를들면..
행 string형(speed) string형(attorder)
[0] 1 0
[1] 5 0
[2] 9 0
[3] 31 0
[4] 71 0
Exam.Sort()하면.. (옵션 생략)
1 31 5 71 9 순으로 정렬되고 int형일때와 string형의 결과가 다름니다..
그래서, 수작업으로 직접 Sort 정렬 스크립트를 작성해 봤어요..
List PlyerList
string형(speed) string형(AttackOrder) string형(TempOrder)
이라고 가정하고나서..
먼저 speed 값을 기준으로 정렬합니다..
int.Pase(exam[a].speed)와 a.Tostring() 등은 생략, 알아서 이해하는 걸로.
for (int a = 0; a < PlyerList.Count; a++)
{
for (int b = 0; b < PlyerList.Count; b++)
{
if (int.Parse (PlyerList[a].Speed) < int.Parse (PlyerList[b].Speed))
{
int TempOrder = int.Parse(PlyerList[a].AttackOrder);
TempOrder++;
PlyerList[a].AttackOrder = TempOrder.ToString();
}
}
}
라고 하면 결과는,
가 됩니다..
첫번째, 여기서 추가적으로,
int CountOrder = 0;
for (int a = 0; a < PlyerList.Count; a++)
{
for (int b = 0; b < PlyerList.Count; b++)
{
if (PlyerList[b].AttackOrder == a.ToString())
{
PlyerList[b].TempOrder= CountOrder.ToString();
CountOrder++;
}
}
}
라고 하면 결과는,
이렇게 결과가 저장되고..
이걸 다시 이중 반복문으로 Add()와 RemoveAt(), TrimExcess()를 활용해서..
다시 원래 가정에서
정렬한 후에 ~라고 하면 결과는,
List PlyerList
string형(speed) string형(AttackOrder) string형(TempOrder)
에서
두번째, 약간 수정해서 추가적으로,
for (int a = 0; a < PlyerList.Count; a++)
{
for (int b = 0; b < PlyerList.Count; b++)
{
if (PlyerList[b].AttackOrder == a.ToString())
{
PlyerList.Add( PlyerList[b] );
PlyerList.RemoveAt( PlyerList[b] );
}
}
}
PlyerList.TrimExcess();
라고 하면 결과는,
이렇게 나올 것으로 기대되는데 될려나..
PlyerList.TrimExcess(); 때문에..
0 ~ 5행은 삭제가 되고..
6 -> 0 ~ 11 -> 5 로 변경될 것으로 예상됩니다..
아니면 중에 TempExam 를 넘어서 3각 치환을 활용하던가..
.
.
.
'ぺ Let's do it ぺ > ⒈유니티(Unity3d)' 카테고리의 다른 글
[별아재군/unity2d] Sort() 기능없이 데이터 정렬하는 방법 설명 (0) | 2021.10.19 |
---|---|
[별아재군/unity2d] Sort() 기능없이 문자열(string) List 행 정렬하기.. (0) | 2021.10.06 |
[별아재군/unity2d] 무료 이미지(아이콘, 스프라이트) 구하기 좋은 픽사베이.. (0) | 2021.10.02 |
[별아재군/unity2d] "삼국지 영웅전" 모험 어드벤쳐 모드 구현하기.. (0) | 2021.10.01 |
[별아재군/unity2d] "삼국지 영웅전" 영웅관리 화면 두번째 판매하고 정렬하기.. (0) | 2021.09.28 |
댓글