C# 3.0부터 클래스를 미리 정의하지 않고 사용할 수 있게 하는 익명타입(Anonymous Type)을 지원하게 되었습니다.

 

익명타입(Anonymous Type)의 특징

  • 읽기전용이다. (get 만 지원한다, set은 안됩니다.)
  • 변수에 할당할때에는 var 타입을 사용합니다. (특별하게 타입이 존재하지 않기 때문입니다.)
  • new { .... } 형식을 사용합니다. ( .... 에는 속성 = 값으로 할당합니다. Json 형태와 비슷하다고 생각하시면 쉽습니다.)

 

일반적인 사용방법

1
2
3
4
var person = new { Name = "홍길동", Age = 13, Job = "Programer" };
string name = person.Name;
int age = person.Age;
string job = person.Job;
cs

 

위에처럼 간단하게 person 이라는 익명타입의 객체를 생성 후,

name, age, job 이라는 변수에 넣습니다.

익명타입은 간단히 임시로 만들어서 사용할 때에 유용하게 사용할 수 있습니다. 그것은 C#에서 자주 사용하는 Linq입니다.

 

 

Linq에서 사용방법

1
2
3
4
5
6
7
8
9
10
11
var persons = new[] {
    new { Name = "홍길동", Age = 13, Job = "Programer" },
    new { Name = "이국종", Age = 25, Job = "Doctor" },
    new { Name = "펀치", Age = 37, Job = "Vocalist" },
};
 
var list = persons.Select(p => new { Introduce = $"{p.Name}은 {p.Job} 입니다." });
 
foreach (var item in list) {
    Console.WriteLine(item.Introduce);
}
cs

 

Name, Age, Job 으로 구성된 익명타입을 persons 배열로 생성하였습니다.

그리고 7번째 라인에서 Linq의 Select 함수를 이용해서 새로운 익명타입을 설정해줍니다. 그 속성은 Introduce로 생성해주었고 persons에 있는 속성인 Name과 Job 을 이용하였습니다.

 

굳이 클래스를 만들 필요 없이, 간단하게 사용할때에는 익명타입을 자주 사용하게 될 것입니다.

+ Recent posts