개발/코드

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

테샤르 2020. 12. 15. 22:26

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

 

★☆

 

반응형