반응형

 

Javascript로 최소~최대값을 받아서 랜덤한 숫자를 가져오는 것을 하면서

C#으로도 구현이 필요해서 함수로 만들어 보았다.

 

아래에 Javascript 버전이 있으니, 이것도 참고하자.

 

2020/01/28 - [개발/Javascript] - [Javascript] 최소~최대 까지 랜덤 숫자 가져오기.

 

[Javascript] 최소~최대 까지 랜덤 숫자 가져오기.

최소부터 최대까지 랜덤 하게 숫자를 가져와야 할 경우가 많다. 뭐 예를 들어서, 1부터 10까지 숫자 중에 하나를 가져와야 할 경우가 대표적인 예이다. 최소~최대 랜덤 숫자 가져오기 1 2 3 function getRandom(mi..

im-first-rate.tistory.com

 

LINQ를 이용해, 랜덤하게 N개 추출하는 예제

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
static IEnumerable<int> getRandomArray(int min, int max, int count) {
            
    // Enumerable.Range(처음값, 개수)
    // Array Setting
    var array = Enumerable.Range(min, max - min + 1).ToArray();
 
    // Guid.NewGuid 는 32글자수를 가진 16진수 문자열을 만든다.
    // 배열값에 해당 문자열을 맵핑
    // 해당 문자열로 정렬하게 된다.
    // 아래 문자열이 Guid.NewGuid() 값 샘플링이다.
    /*
        03aa01ad-779a-437a-9880-b39cccbd000b
        aec02fcf-fd41-4188-a574-9cc2617ca10a
        c3b33932-304b-4334-9320-4c9079c01aa2
        8afe633b-d275-4de8-8f51-15709c4c2d98
        7f36c0ce-4f10-4f0d-81c0-980119397b03
    */
    var result = array.OrderBy(g => Guid.NewGuid()).Take(count);
 
    // 오름차순 : OrderBy 메서드
    // 내림차순 : OrderByDescending 메서드
    // 오름차순으로 정렬 후 결과값을 리턴해준다.
    return result.OrderBy(o => o);
}
cs

 

최소값/최대값/추출개수를 매개변수로 받았다.

그리고 Enumerable.Range / OrderBy / OrderByDescending / Take 등 여러가지 LINQ 함수를 사용하였다. (이해가 안되는 함수가 있다면, 댓글 부탁드려요.)

LINQ는 개발자들을 편리하게 하는 함수이므로, 다양한 LINQ 함수를 사용하는 것이 중요한 것 같다.

 

1부터 100까지, 그리고 5개의 랜덤한 숫자를 매개변수로 전달하였다.

그리고 20번 함수를 호출하였을때, 서로 다른 랜덤한 숫자가 배열로 리턴되는 것을 알 수 있다.

함수를 Array로 리턴할 수도 있지만, List도 가능하고 다양하게 가능하다.

 

반응형

+ Recent posts