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 목록에서 제품의 이름과 가격만을 추출하여 익명 타입의 목록으로 반환합니다.
- 여러 소스에서 익명 타입 생성:
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 |