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
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] WebClient 클래스 : UploadValues 메소드를 사용해 폼 데이터 전송하기 (0) | 2022.09.06 |
---|---|
[C#/COMMON/.NET6] DateTime 구조체 : 월의 명칭 구하기 (0) | 2022.09.06 |
[C#/COMMON/.NET6] Process 클래스 : 크롬 브라우저에서 구글 검색하기 (0) | 2022.09.06 |
[C#/COMMON/.NET6] 표본집단 공분산 계산하기 (0) | 2022.09.05 |
[C#/COMMON/.NET6] 모집단 공분산 계산하기 (0) | 2022.09.05 |
[C#/COMMON/.NET6] Enum 클래스 : ToObject 정적 메소드를 사용해 정수 값으로 열거형 구하기 (0) | 2022.09.02 |
[C#/COMMON] 운영 체제 타입 구하기 (0) | 2022.09.02 |
[C#/COMMON/.NET6] RuntimeInformation 클래스 : OSDescription 정적 속성을 사용해 운영 체제명과 버전 구하기 (0) | 2022.09.02 |
[C#/COMMON/.NET6] RuntimeInformation 클래스 : IsOSPlatform 정적 메소드를 사용해 운영 체제 확인하기 (0) | 2022.09.02 |
[C#/COMMON/.NET6] Random 클래스 : NextDouble 정적 메소드를 사용해 특정 값 범위 사이의 난수 구하기 (로그 스케일 전략) (0) | 2022.09.02 |
댓글을 달아 주세요