본문 바로가기

워크/C# 3.0

Anonymous Types

Anonymous Types (익명 타입)

익명 타입은 C# 3.0에서 도입된 기능으로, 이름이 없는 임시 객체 타입을 생성할 수 있습니다. 이는 주로 LINQ 쿼리에서 결과를 투영하거나 반환할 때 유용하게 사용됩니다. var 키워드와 함께 사용되어 컴파일 타임에 타입이 결정됩니다.

아래는 익명 타입의 몇 가지 예제입니다:

 

기본적인 익명 타입 생성:

var person = new { Name = "John", Age = 30 };
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}"); // 출력: Name: John, Age: 30

리스트에서 익명 타입을 사용하여 선택적 정보 추출:

class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

List<Product> products = new List<Product>
{
    new Product { Id = 1, Name = "Laptop", Price = 1000M },
    new Product { Id = 2, Name = "Mouse", Price = 20M },
    new Product { Id = 3, Name = "Keyboard", Price = 50M }
};

var productNamesAndPrices = from p in products
                            select new { p.Name, p.Price };

foreach (var item in productNamesAndPrices)
{
    Console.WriteLine($"Name: {item.Name}, Price: {item.Price}");
}

이 예제에서는 Product 목록에서 제품의 이름과 가격만을 추출하여 익명 타입의 목록으로 반환합니다.

  1. 여러 소스에서 익명 타입 생성:
string name = "John";
int age = 30;
var combinedData = new { name, age };

Console.WriteLine($"Name: {combinedData.name}, Age: {combinedData.age}");

익명 타입은 일시적인 데이터 구조를 필요로 할 때 특히 유용합니다. 그러나 익명 타입은 메서드 바깥으로 반환하거나, 클래스 수준에서 너무 광범위하게 사용하게 되면 코드의 복잡성을 증가시킬 수 있으므로 주의해야 합니다.

 

 

 

'워크 > C# 3.0' 카테고리의 다른 글

Object Initializers  (0) 2023.08.26
Partial Methods  (0) 2023.08.26
Extension Methods  (0) 2023.08.26
Lambda Expressions  (0) 2023.08.26
LINQ (Language Integrated Query)  (0) 2023.08.26