본문 바로가기

- Programming/- C#

★ 16. C# - List 사용 예제

반응형

List 에 대한 간략한 설명 및 사용 방법을 알아보겠습니다.


[1] 일반적으로 배열은 동적으로 크기 조절이 되지 않지만 List는 가능합니다.

[2] 리스트를 사용하면 배열의 크기에 대해서 크게 신경쓸 필요도 없습니다.

[3] 선형 리스트에 필요한 Key도 사용하지 않으면서 많은 기능을 제공합니다.


Key Point

List는 Generic이나 구조체로 간주되며 <> 사이에 자료형을 선언해야 합니다.


Add Value


1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System.Collections.Generic;
 
class Program
{
    static void Main()
    {
        List<int> list = new List<int>();
 
        list.Add(2);
        list.Add(3);
        list.Add(5);
        list.Add(7);
    }
}
cs


위의 예제는 하나의 List에 불특정 소수를 추가하는 것을 나타냅니다.

Add를 이용해 Value를 추가시킬 수 있습니다.


Loops


일반적인 배열처럼 List도 반복문을 접목해 사용할 수 있습니다.

경우에 따라 List를 거꾸로 읽어서 처리할 수도 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using system;
using System.Collections.Generic;
 
class Program
{
    static void Main()
    {
        List<int> list = new List<int>();
 
        list.Add(2);
        list.Add(3);
        list.Add(7);
 
        foreach (int prime in list)
        {
            Console.WriteLine(prime);
        }
 
        for (int i = 0; i < list.Count; i++)
        {
            Console.WriteLine(list[i]);
        }
    }
}
cs


Output

2

3

7


Count Element


Key Point

현재 사용중인 리스트 내부의 요소 개수가 궁금할 때 Count() 속성을 사용합니다.


Clear List


리스트 내부의 요소를 모두 지울 때 Clear() 메소드를 사용합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.Collections.Generic;
 
class Program
{
    Static void Main()
    {
        List<bool> list = new List<bool>();
        list.Add(true);
        list.Add(false);
        list.Add(true);
        Console.WriteLine(list.Count);
 
        list.Clear();
        Console.WriteLine(list.Count);
    }
}
cs


Output

3

0


Copy array to List


생성자를 이용해서 만든 배열의 요소를 List에 매개 변수로 전달해 복사할 수 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.Collections.Generic;
 
class Program
{
    Static void Main()
    {
        int[] arr = new int[3];
        arr[0= 2;
        arr[1= 3;
        arr[2= 5;
 
        List<int> list = new List<int>(arr);
 
        Console.WriteLine(list.Count);
    }
}
cs


Find Element


아래 예제는 List에서 원하는 요소를 검색하는 방법입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Collections.Generic;
 
class Program
{
    Static void Main()
    {
        List<int> primes = new List<int>(new int[] {2. 3. 5});
 
        foreach (int number in primes)
        {
            if (number == 3)
            {
                Console.WriteLine("Contains 3");
            }
        }
    }
}
cs


Join String List Example


String.Join을 이용해 단어 사이에 ','가 찍히는 문자열을 만드는 예제입니다.

여러 개의 문자열을 구성할 때 유용하게 사용할 수 있습니다.


List에서 문자열을 추출할 땐 ToArray를 이용합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.Collections.Generic;
 
class Program
{
    Static void Main()
    {
        List<string> cities = new List<string>();
        cities.Add("New York");
        cities.Add("Mumbai");
        cities.Add("Berlin");
        cities.Add("Istanbul");
 
        string line = string.Join(",", cities.ToArray());
        Console.WriteLine(line);
    }
}
cs


Get List from Keys in Dictonary


Key들의 값을 얻어낼 List를 생성하는 예입니다.

.Keys를 이용해서 Enumerable을 반환 받기 때문에 가능합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
using System.Collections.Generic;
 
class Program
{
    Static void Main()
    {
        Dictionary<int,bool> dict = new Dictionary<intbool>();
        dict.Add(3true);
        dict.Add(5false);
 
        List<int> keys = new List<int>(dict.Keys);
 
        foreach (int key in keys)
        {
            Console.WriteLine(key);
        }
    }
}
cs


Insert Element


이미 여러 요소를 보유한 List 중간에 새로운 값을 넣을 수 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
using System.Collections.Generic;
 
class Program
{
    Static void Main()
    {
        List<string> dogs = new List<string>();
 
        dogs.Add("spaniel");
        dogs.Add("beagle");
        dogs.Insert(1"dalmatian");
 
        foreach (string dog in dogs)
        {
            Console.WriteLine(dog);
        }
    }
}
cs


Output

spaniel

dalmatian

beagle


Get range of Element


GetRange() 메소드를 이용해서 범위 안의 요소를 추출할 수 있습니다.

LINQ의 Skip과 비슷한 면도 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using System;
using System.Collections.Generic;
 
class Program
{
    Static void Main()
    {
        List<string> rivers = new List<string>(new string[]
        {
            "nile",
            "amazon",
            "yangtze",
            "mississippi",
            "yellow"
        });
 
        List<string> range = rivers.GetRange(12);
 
        foreach (string river in range)
        {
            Console.WriteLine(river);
        }
    }
}
cs


Output

amazon

yangtze

반응형

'- Programming > - C#' 카테고리의 다른 글

★ 18. 람다식 (Lambda Expression)  (0) 2017.03.26
★ 17. C# - Dictionary Collection  (3) 2017.03.26
★ 15. c# ref와 out의 차이  (0) 2017.02.16
★ 14. c# 네트워크 개발 p13  (0) 2017.02.16
★ 13. c# 네트워크 개발 p12  (0) 2017.02.16