■ List 클래스에서 무작위로 항목을 섞는 방법을 보여준다.
▶ List 클래스 : 무작위로 항목 섞기 예제 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using System; using System.Collections.Generic; Random random = new Random(DateTime.Now.Millisecond); List<string> list = new List<string>() { "가", "나", "다", "라", "마" }; Shuffle<string>(random, list); foreach(string item in list) { Console.WriteLine(item); } |
▶ List 클래스 : 무작위로 항목 섞기 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
using System; using System.Collections.Generic; #region 섞기 - Shuffle<TItem>(random, targetList) /// <summary> /// 섞기 /// </summary> /// <typeparam name="TItem">항목 타입</typeparam> /// <param name="random">난수 발생기</param> /// <param name="targetList">타겟 리스트</param> public void Shuffle<TItem>(Random random, List<TItem> targetList) { for(int i = targetList.Count; i > 0; i--) { Swap(targetList, 0, random.Next(0, i)); } } #endregion #region 교체하기 - Swap<TItem>(targetList, index1, index2) /// <summary> /// 교체하기 /// </summary> /// <typeparam name="TItem">항목 타입</typeparam> /// <param name="targetList">타겟 리스트</param> /// <param name="index1">인덱스 1</param> /// <param name="index2">인덱스 2</param> private void Swap<TItem>(List<TItem> targetList, int index1, int index2) { TItem temporaryValue = targetList[index1]; targetList[index1] = targetList[index2]; targetList[index2] = temporaryValue; } #endregion |