게임개발 캠프 18일차

IIRU·2026년 6월 10일

람다

람다란? 함수를 짧게, 간단하게 적는 문법.

  1. 람다는 이름이 없다. - 무명메소드
  2. 람다는 선언없이 바로 델리게이트에 담을 수 있다.
Action<string> action;
action = str => Console.WriteLine(str);

람다를 쓰는 이유

  1. 한번쓰고 안쓰는 함수를 굳이 선언할 필요가 없다.
  2. 간단한 함수를 선언하지 않고 쓸 수 있다.
  3. 코드를 짧게 쓸 수 있다.
public static void Print(string str)
{
    Console.WriteLine(str);
}

이 함수는 위에 쓴 람다와 같은 의미이다.
길게 쓸 필요없이 위처럼 람다를 쓰면 짧게 쓸 수 있다.

action = Print;
action -= Print;

함수는 이렇게 action에 넣었다가 뺄 수 있지만
람다는 넣게 되면 초기화를 해주어야한다.

튜플

(double, int) x = (1.5, 2);

위처럼 두 개 이상의 자료형을 묶어서 사용할 때 쓸 수 있는 것이 튜플이다.

Console.WriteLine(x.Item1);
Console.WriteLine(x.Item2);

출력을 하고싶다면 위와 같은 방법으로 하면된다.

람다와 튜플을 같이 사용할 수도 있다.

Func<int, int, int> func2;
func2 = (a, b) => a + b;

a+b의 함수를 짧게 만들어서 func2에 넣어줄 수 있다.

LINQ

Language Integrated Qurey
C#에서 컬렉션 데이터를 더 직관적으로 조회하고 가공할 수 있는 기능이다.

가독성이 올라가고, 코드량이 감소하지만, 연산량이 많아서 사용에 주의해야한다.

LINQ메서드

where( )

조건으로 값을 찾을 수 있다.

players.Where(p => p.hp > 0)

Select( )

요소를 변환한다.
ex)p 에 p.name을 담는다.

players.Select(p => p.name)

OrderBy( ) / OrderByDescending( )

요소들을 정렬해준다.

players.OrderBy(p => p.score)

First( )/ FirstOrDefault( )

첫번째 요소를 반환해준다.

players.FirstOrDefault(p => p.hp >= 0)

First를 써도 좋지만 FirstOrDefault를 쓰게 되면 첫번째 값이 없다면 null을 반환해주기때문에 이것을 쓰는것이 좋다.

Any( ) / All ( )

Ani는 하나라도 만족하면 true.
All은 하나라도 조건을 만족하지 않는다면 false.

players.Any(p => p.level > 10)

bool값을 반환한다.

Sum( ) / Average( ) / Count( )

players.Sum(p => p.score)

sum은 합 / average는 평균 / count 갯수

Distinct( )

중복제거를 위해 쓴다.

items.Distinct()

GroupBy( )

var grouped = inven.GroupBy(i => i.rarity);

foreach (var group in grouped)
{
    Console.WriteLine($"희귀도: {group.Key},    
    개수: {group.Count()}");          
    
    foreach (var item in group)
        Console.WriteLine($" - {item.itemName}");
}

같은 것끼리 그룹화 해준다.

ToList( )

inven.ToList()

리스트로 만들어 준다.

profile
초보 개발자 블로그입니다!

0개의 댓글