28 익명 타입

vencott·2021년 6월 2일
0

C#

목록 보기
28/32

Anonymous Type

C# 3.0부터 클래스를 미리 정의하지 않고 사용할 수 있게 하는 익명타입을 지원

new {속성1=1, 속성2=2, ...}

익명 타입은 읽기 전용이므로 값을 갱신할 수 없다

C#의 키워드 var는 컴파일러가 타입을 추론하도록 할 때 사용하는데, 익명 타입 객체를 변수에 할당할 때는 특별한 타입이 없으므로 var를 사용한다

컴파일러는 익명 타입에 대해 내부적으로 임의의 클래스를 생성하여 사용한다

var t = new { Name="홍길동", Age=20 }; // var 사용
string s = t.Name;

사용

공식적으로 클래스를 정의할 필요 없이 Type을 간단히 임시로 만들어 사용할 때 유용

LINQ 사용 시 많이 활용된다

// LINQ의 Where() 메서드를 이용해 특정 조건의 데이터를 찾은 뒤, Select() 메서드를 사용하여 일부 컬럼들로만 구성된 새 익명 타입을 만들어 리턴
private void RunTest()
{
    var v = new[] {
        new { Name="Lee", Age=33, Phone="02-111-1111" },
        new { Name="Kim", Age=25, Phone="02-222-2222" },
        new { Name="Park", Age=37, Phone="02-333-3333" },
    };

    // LINQ Select를 이용해 Name과 Age만 갖는 새 익명타입 객체들을 리턴
    var list = v.Where(p => p.Age >= 30).Select(p => new { p.Name, p.Age });
    foreach (var a in list)
    {
        Debug.WriteLine(a.Name + a.Age);
    }
}

출처: http://www.csharpstudy.com/

profile
Backend Developer

0개의 댓글