반응형
Javascript로 최소~최대값을 받아서 랜덤한 숫자를 가져오는 것을 하면서
C#으로도 구현이 필요해서 함수로 만들어 보았다.
아래에 Javascript 버전이 있으니, 이것도 참고하자.
2020/01/28 - [개발/Javascript] - [Javascript] 최소~최대 까지 랜덤 숫자 가져오기.
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도 가능하고 다양하게 가능하다.
반응형
'개발 > C#' 카테고리의 다른 글
[C#] Array(배열)에 동일한 값 있는지 없는지 알아보자. (6) | 2020.02.27 |
---|---|
[C#] LINQ, FirstOrDefault Vs SingleOrDefault 비교해보자. (1) | 2020.01.30 |
[C#] params 키워드를 알아보자. (0) | 2020.01.22 |
[C#] 클래스에서 ToString() 적극 활용하자. (0) | 2020.01.14 |
[C#] 암호화/복호화 한방에 해결하자.(feat.DESCryptoServiceProvider) (1) | 2020.01.09 |