반응형
명시적으로 데이터 타입을 정의할 필요 없이 읽기 전용 속성 집합을 단일 개체로 편리하게 캡슐화가 가능합니다.
타입은 컴파일러에 의해 생성되고, 소스 코드 수준에서 값을 변경할 수 없습니다.
속성을 초기화하는데 사용되는 식은 null, 익명 함수 또는 포인터 형식일 수 없습니다.
형식
var 변수명 = new { 속성 = 값, 속성 = 값,....}
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var a = new { num1 = 50, strMessage = "HI" };
//a.num1 = 20; 읽기전용이므로 할당이 불가능합니다.
Console.WriteLine("a.num1 = " + a.num1);
Console.WriteLine("a.strMessage = " + a.strMessage);
}
}
}
|
a란 변수를 만들어 num1, strMessage라는 속성을 가진 값을 만들 수 있습니다.
읽기전용이므로 "a.num1 = 20;"와 같이 값을 할당할 수 없습니다.
또한 다음과 같이 배열형식으로 넣을 수 있습니다.
var a = new[] { new { num1 = 50, strMessage = "Kim"}, new { num1 = 100, strMessage = "Lee"} }
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var a = new[] { new { num1 = 50, strMessage = "Kim"},
new { num1 = 100, strMessage = "Lee"},
new { num1 = 150, strMessage = "Choi"},
new { num1 = 2500, strMessage = "Jung"},
new { num1 = 3050, strMessage = "Park"}
};
foreach (var aaaa in a)
{
Console.WriteLine("a.num1 = " + aaaa.num1);
Console.WriteLine("a.strMessage = " + aaaa.strMessage);
}
}
}
}
|
LINQ 쿼리 식을 사용해서 데이터 조회도 가능합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var a = new[] { new { num1 = 50, strMessage = "Kim"},
new { num1 = 100, strMessage = "Lee"},
new { num1 = 150, strMessage = "Choi"},
new { num1 = 2500, strMessage = "Jung"},
new { num1 = 3050, strMessage = "Park"}
};
var list = a.Where(p => p.num1 > 1000).Select( p=> new { p.num1, p.strMessage } );
foreach (var aaaa in list)
{
Console.WriteLine("a.num1 = " + aaaa.num1);
Console.WriteLine("a.strMessage = " + aaaa.strMessage);
}
}
}
}
|
반응형
'개발공부 > C#' 카테고리의 다른 글
[C#] String.Format (0) | 2019.10.28 |
---|---|
[C#] #region (0) | 2019.10.27 |
[C#] Action, Func (0) | 2019.10.22 |
[C#] 람다식(Lambda expressions) (0) | 2019.10.21 |
[C#] 무명 메서드(anonymous method) (0) | 2019.10.20 |