본문 바로가기
개발/코드

Unity)List Shuffle(리스트 랜덤으로 순서 변경)

by 테샤르 2020. 12. 15.

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를 찍어본 결과이다.

 

★☆

 

반응형

댓글