배치고사 준비하면서 문제를 풀다가 Linq를 사용해봤다.
int[] arr = {2, 4, 9, 7, 5};
기본에 배열의 합을 구할 때는 반복문으로 일일히 다 더했다.
int sum = arr.Sum();
컬렉션을 순회하며 원하는 방식으로 원소를 수정하거나 변경할 수 있다.
각 원소 제곱하기
int[] newArr = arr.Select(n => n * n).ToArray()
// 4 16 81 49 25
컬렉션을 순회하며 조건에 맞으면 선택한다.
SQL에 있는 Where과 쓰임이 동일하다.
int[] odd = arr.Where(n => n % 2 == 1).ToArray();
// 9 7 5
위와 같이 홀수 컬렉션만 추출하는 등으로 쓸 수 있다.
매개변수 start부터 1씩 올라가며 마지막 값이 end인 컬렉션을 출력한다.
// 소수 판별 함수
public static bool IsPrime(int n)
{
if(n == 0 || n == 1)
return false;
for (int i = 2; i < n; i++)
{
if (n % i == 0) return false;
}
return true;
}
int n = 50;
int[] newArr = Enumerable.Range(1, n).Where(x => IsPrime(x)).ToArray();
// 소수만 모으기
아직 다 써보진 않았지만
Linq를 응용하면 반복문 이상으로 활용도가 높아 코드가 더 간결해지는 효과를 볼 수 있었다.
오늘은 전반적으로 기초 기능 구현에 힘썼다.
애매했던 부분은 더 정리해서 상점, 인벤토리, 휴식 기능을 완료했다.
아이템 강화 기능으로 넘어가려는데 문제가 생겼다.
지금까지는 아이템에 중복이 불가능했지만, 던전 보상 등으로 아이템의 중복 소유가 가능해졌다.
이제 각 아이템 인스턴스마다 구별용 값을 만들어주어서 서로 서로 다른 객체라는 것을 명시해주어야 한다.
저번 진행도 17.~ %에서 43.3%로 진행된 모습니다.
하루 작업량이 대략 26% 정도는 됐다고 볼 수 있다.
다만, 전반적으로 코딩 자체가 어려운 팀원들도 있는 듯 보인다.
이 부분은 아직은 코딩의 양 자체가 많지 않아다보니 생소해서 생기는 일인 듯하다.
단, 이대로 계속 방치해 둘 수도 없으니 내일은 튜터님께 한번 상담을 받아봐야겠다.
#내일배움캠프 #스파르타내일배움캠프 #스파르타내일배움캠프TIL