728x90
반응형
728x170
■ IEnumerable<T> 인터페이스를 사용해 열거 가능형을 임의로 섞는 방법을 보여준다.
▶ IEnumerable 인터페이스 : 열거 가능형 임의로 섞기 예제 (C#)
using System;
using System.Collections.Generic;
List<Student> sourceList = new List<Student>();
sourceList.Add(new Student { ID = "ID1", Name = "홍길동" });
sourceList.Add(new Student { ID = "ID2", Name = "김철수" });
sourceList.Add(new Student { ID = "ID3", Name = "최민우" });
IEnumerable<Student> resultEnumerable = Shuffle(sourceList);
foreach(Student student in resultEnumerable)
{
Console.WriteLine(student.ID);
}
▶ IEnumerable 인터페이스 : 열거 가능형 임의로 섞기 (C#)
using System;
using System.Collections.Generic;
using System.Linq;
#region 섞기 - Shuffle<TItem>(sourceEnumerable, random)
/// <summary>
/// 섞기
/// </summary>
/// <typeparam name="TItem">항목 타입</typeparam>
/// <param name="sourceEnumerable">소스 열거 가능형</param>
/// <param name="random">난수기</param>
/// <returns>섞은 후 열거 가능형</returns>
public IEnumerable<TItem> Shuffle<TItem>(IEnumerable<TItem> sourceEnumerable, Random random = null)
{
if(random == null)
{
random = new Random();
}
TItem[] itemArray = sourceEnumerable.ToArray();
for(int i = itemArray.Length - 1; i >= 0; i--)
{
int index = random.Next(i + 1);
yield return itemArray[index];
itemArray[index] = itemArray[i];
}
}
#endregion
728x90
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON/.NET6] DateTime 구조체 : 밀리초 정밀도 포맷 문자열 사용하기 (0) | 2022.10.14 |
---|---|
[C#/COMMON/.NET6] 2의 거듭 제곱 여부 구하기 (0) | 2022.10.14 |
[C#/COMMON/.NET6] IEnumerable<T> 인터페이스 : 열거 가능형에서 중복 항목 제거하기 (0) | 2022.10.13 |
[C#/COMMON/.NET6] object 클래스 : GetHashCode/Equals 메소드를 사용해 열거 가능형에서 중복 항목 제거하기 (0) | 2022.10.12 |
[C#/COMMON/.NET6] IEqualityComparer<T> 인터페이스 : 열거 가능형에서 중복 항목 제거하기 (0) | 2022.10.12 |
[C#/COMMON/.NET6] List<T> 클래스 : 리스트 임의로 섞기 (0) | 2022.10.12 |
[C#/COMMON/.NET6] IEnumerable<T> 인터페이스 : 열거 가능형 임의로 섞기 (0) | 2022.10.12 |
[C#/COMMON/.NET6] IList<T> 인터페이스 : 리스트 임의로 섞기 (0) | 2022.10.12 |
[C#/COMMON/.NET6] DataTable 클래스 : ImportRow 메소드를 사용해 DataRow 객체 가져오기 (0) | 2022.10.10 |
[C#/COMMON/.NET6] 가우스 정규 난수기 사용하기 (0) | 2022.10.09 |
댓글을 달아 주세요