C# 익명 타입

Featured image

Git Source


익명 타입 😎

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

사용방법)

use1


컴파일러는 이전에 만든 익명 타입을 재사용하지만 조건이 있다.

  1. 동일한 어셈블리 내에 선언되어야한다.
  2. 속성 이름과 타입이 일치해야 하며, 같은 순서로 선언되어야한다.
var person = new { Name = "홍길동", Age = 24, Address = "경기도 광주" };
var person2 = new { Name = "홍길동", Address = "경기도 광주", Age = 24 };
// 다음 두 인스턴스는 서로 다른 독립적인 익명타입을 생성한다.

익명 타입은 공식적으로 클래스를 정의할 필요 없이 Type을 간단히 임시로 만들어 사용할 때 유용하다. 특히 익명 타입은 LINQ를 사용할 때 많이 사용된다.

var cities = new[]
{
    new { Name = "Baek", Age = 50, Job = "Programmer"},
    new { Name = "Lee", Age = 20, Job = "Chef"},
    new { Name = "Park", Age = 30, Job = "Teacher"},
    new { Name = "Choi", Age = 40, Job = "Docter"},
};

var lists = cities.Where(c => c.Age <= 30).Select(c => new { c.Name, c.Job });

foreach(var list in lists)
    Console.WriteLine($"{list.Name} is {list.Job}");

// Select() 메서드를 사용하여 일부 컬럼들로만 구성된 새 익명 타입을 만들어 리턴한다.