반응형

명시적으로 데이터 타입을 정의할 필요 없이 읽기 전용 속성 집합을 단일 개체로 편리하게 캡슐화가 가능합니다.
타입은 컴파일러에 의해 생성되고, 소스 코드 수준에서 값을 변경할 수 없습니다.
속성을 초기화하는데 사용되는 식은 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

+ Recent posts