Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 전면광고
- unity3D
- 유니티
- canvasgroup
- 유니티기초
- 광고테스트
- Admob
- 컴퓨터구조
- http
- unity
- ui
- LINQ
- C#
- scrollrect
- Hackerrank
- climbingtheleaderboard
- 애니메이션
- enum
- 랜덤
- 게임개발
- 프로그래머스
- cs
- 애드몹
- UGUI
- 코딩테스트
- dotween
- React Native
- 열거형
- csvhelper
- 모션
Archives
- Today
- Total
Ruya Games
리스트 랜덤으로 섞기 + 선택할때 특정 값 나오지 않도록 하기 본문
리스트의 순서를 랜덤으로 설정하는 방법은 여러가지가 있을텐데, 아래는 그중 LINQ를 사용하는 간단한 방법 하나입니다.
myList = myList.OrderBy(_ => Guid.NewGuid());
여기서 값을 하나 추출하고 싶다면 뒤에 First() 또는 FirstOrDefault()를 붙이면 됩니다.
var selectValue = myList.OrderBy(_ => Guid.NewGuid()).First();
여기서 특정 값이 추출되지 않길 바란다면, Remove()로 원소를 제거하고 돌리시면 됩니다.
var myList = new List<int> { 0, 1, 2, 3, 4 };
myList.Remove(3);
var selectValue = setArray.OrderBy(_ => Guid.NewGuid()).First();
원본 리스트의 값을 변경시키지 않고 싶으시다면 아래처럼 리스트를 복제해서 사용해주세요.
var myList = new List<int> { 0, 1, 2, 3, 4 };
var duplicateList = myList.ToList();
duplicateList.Remove(3);
var selectValue = duplicateList.OrderBy(_ => Guid.NewGuid()).First();
'C# > LINQ' 카테고리의 다른 글
List나 Array의 원소들의 순서를 랜덤으로 섞기 (1) | 2023.12.03 |
---|