본문 바로가기

c#

C#: List Shuffle과 Swap (by index)구현 방법

1. List Shuffle

 

Java에서는 기본적으로 지원하는 함수지만, C#에서는 확장메서드로 구현 해줘야 한다.

    public static class ExtensionList
    {
        private static Random _ran = new Random();

        public static void Shuffle<T>(this List<T> list)
        {
            int to = list.Count;
            while (to > 1)
            {
                int from = _ran.Next(--to + 1);
                T tmp = list[from];
                list[from] = list[to];
                list[to] = tmp;
            }
        }
    }

 

 

2. List Swap

 

List에 index로 서로의 위치를 변경하고자 할때 쓰인다.

ex) Drag&Move로 아이템의 위치를 변경하고자 할때

C#에서 제공하는 함수는 없으며, 확장 메서드로 따로 구현 하여야 한다.

    public static class ExtensionList
    {
        public static void Swap<T>(this List<T> list, int from, int to)
        {
            T tmp = list[from];
            list[from] = list[to];
            list[to] = tmp;
        }
    }

'c#' 카테고리의 다른 글

C#: WCF ServiceClient의 IDiaposable 구현  (0) 2021.02.08
UI 프리징을 피하기 위한 Task 사용 방법  (0) 2020.05.13