c#

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

개태형님 2021. 2. 8. 00:22

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;
        }
    }