List Shuffle(리스트 랜덤으로 순서 변경)
리스트의 순서를 랜덤으로 변경하는 코드이다. 데이터를 개수만큼 생성 이후에 랜덤으로 순서를 변경한다.
기본적으로 Swap의 코드로 구성되어있다.
반응형
Genergeneric type으로 선언해서 List의 어떤 형태든 가능하도록 했다.
< 방법 - 1>
public List<T> GetShuffleList<T>(List<T> _list){
for (int i = _list.Count - 1; i > 0; i--)
{
int rnd = UnityEngine.Random.Range(0, i);
T temp = _list[i];
_list[i] = _list[rnd];
_list[rnd] = temp;
}
return _list;
}
< 방법 - 2>
System.Random random = new System.Random();
var shuffledList = indexList.OrderBy(a => random.Next()).ToList();
단순한 유틸 메소드이다.
테스트 코드는 0~50개의 순차적인 리스트를 해당 코드를 통해서 Log를 찍어본 결과이다.
★☆☆☆☆
반응형
'개발 > 코드' 카테고리의 다른 글
Unity)앱 종료 처리 코드 (0) | 2021.02.25 |
---|---|
코드)Linq - list 특정조건 비교 / list 와 list의 중복/ list 와 list 합집합 (2) | 2021.01.13 |
코드) 리스폰 가능한 포지션 가져오기(방해물 영역제외) (0) | 2020.05.29 |
코드) c# 날짜계산하기(DateTime 비교) (0) | 2020.05.29 |
코드) Unity - 바이트를 기준으로 String 짜르기 (2) | 2020.03.25 |
댓글