본문 바로가기
프로그래밍

2_11. Tuple(튜플)

by BlueOcean&Shark 2019. 1. 22.
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace cshapExTwo13_2
{
    class Program
    {
        static void Main(string[] args)
        {
            /*
             * 1) Tuple(튜플)이란
             *  - 메소드에서 두개 이상의 값을 리턴 할 수 있음
             * 
             * 2) Tuple(튜플)선언
             * 튜플은 ( ) 안에 여러개의 필드를 저장하여 만들 수 있다.
             * var t = (100,200) // unnamed tuple 여기서 100은 item1, 200은 item2
             * var t = (Name : "홍길동", ID : "1234") // named tuple
             * 
             * cf) 튜플을 사용하기위한 패키지설치방법
             * 도구 - NuGet패키지관리자 - 패키지관리자 콘솔 - PM> Install-Package "System.ValueTuple" 엔터
             * */
 
            // 튜플 기본
            var v1 = ("홍길동"22);
            Console.WriteLine($"{v1.Item1},{v1.Item2}");
 
            var v2 = (Name:"홍길순", Age:32);
            Console.WriteLine($"{v2.Name},{v2.Age}");
 
            var (name, age) = v2;
            Console.WriteLine($"{name},{age}");
 
            v1 = v2; // 튜플은 valueType이므로 이렇게 복사가능
            Console.WriteLine($"{v1.Item1},{v1.Item2}");
 
 
            // 튜플 메소드
            Console.WriteLine("--------------");
            (int count, int sum, double avg) GetScore(List<int> data) //튜플 리턴타입
            {
                int cnt = 0;
                int sum = 0;
                double avg = 0;
                
                foreach(var i in data)
                {
                    cnt++;
                    sum += i;
                }
                avg = sum / cnt;
                return (cnt, sum, avg);
            }
 
            var scoreData = new List<int> { 1020304050 };
            var result = GetScore(scoreData);
 
            Console.WriteLine($"{result.count},{result.sum},{result.avg}");
            Console.WriteLine($"{result.Item1},{result.Item2},{result.Item3}");
        }
    }   
}
 
cs

-----------------------------------------------결과창-----------------------------------------------

홍길동,22

홍길순,32

홍길순,32

홍길순,32

--------------

5,150,30

5,150,30

'프로그래밍' 카테고리의 다른 글

2_13. 추상클래스  (0) 2019.01.27
2_12. 인터페이스  (0) 2019.01.27
2_10. struct (구조체)  (0) 2019.01.22
2_9. virtual / override / new  (0) 2019.01.22
2_8. is연산자 와 as 연산자  (0) 2019.01.21

댓글