첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

■ List 클래스에서 무작위로 항목을 섞는 방법을 보여준다.

 

▶ List 클래스 : 무작위로 항목 섞기 예제 (C#)

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#)

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
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요