728x90

C# List 는 동적으로 할당하는 가변배열(동적배열)이라고 볼 수 있는데 좀 더 강력하다.

List 클래스는 닷넷 프레임워크를 바탕으로 만들어져 있어서 배열로는 할 수 없는 다양한 것을 할 수 있다.


List <T> 변수명 = new List <T>();


T에 원하는 타입을 지정하면 치환이 가능하다.

int, float, string 외에 어떠한 형태의 타입도 지정이 가능하다.


보통 예제가 콘솔에 뿌리는 형태인데 난 그냥 폼에 뿌리는 방식으로 해봤다.


using System;
using System.Collections.Generic;  // 리스트 사용하기 위해
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace List
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            List<int> number = new List<int>();
 
            number.Add(10);  // 리스트 추가
            number.Add(20);  // 리스트 추가
            number.Add(30);  // 리스트 추가
            number.Add(40);  // 리스트 추가
 
            var sb = new StringBuilder();
            foreach (var item in number)
            {
                sb.AppendLine(item.ToString());                
            }
            textBox1.Text = sb.ToString();
 
            number.Remove(30); // 리스트 삭제
            number.RemoveAt(1); // 해당 인덱스의 리스트 삭제
            number.Insert(0100); // 0번째 인덱스에 100 추가
 
            sb = null;  // 변수 초기화
            sb = new StringBuilder(); // 메모리 재할당
            for (int i = 0; i < number.Count; i++)
            {
                sb.AppendLine(number[i].ToString());
            }
            MessageBox.Show(sb.ToString());
        }
    }
}


실행결과는 아래와 같다.

텍스트박스에 뿌리기 위해 StringBuilder 를 이용하여 값을 합쳐나갔고,

리스트를 삭제, 삽입하는 결과는 메시지박스에 표시되도록 했다.

소스코드를 복사해서 http://colorscripter.com/ 에 붙여넣기를 하고 언어를 C#을 선택한 다음, 클립보드에 복사를 선택하여 붙여넣기를 하면 된다.


배열과 달리 리스트는 원하는 곳에 데이터를 추가(Insert)할 수도 있다.

필요할 때마다 Add 를 사용해서 리스트를 추가해주고

Remove 나 RemoveAt 을 이용하여 리스트를 삭제할 수 있다.

삭제가 되면 리스트의 index 는 자동으로 하나씩 당겨진다.

배열에서 카운트는 number.Length 인데, 리스트에서는 number.Count 이다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        private void button2_Click(object sender, EventArgs e)        {
            int[] arr = new int[3]; // New array with 3 elements.
            arr[0= 2;
            arr[1= 3;
            arr[2= 5;
 
            List<int> number = new List<int>(arr); // 배열을 리스트에 복사
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            List<int> number = new List<int>();
 
            number.Add(10);  // 리스트 추가
            number.Add(20);  // 리스트 추가
            number.Add(30);  // 리스트 추가
            number.Add(40);  // 리스트 추가
 
            int[] arr = number.ToArray(); // 일반 배열로 반환
        }
cs


List 객체는 어떤 유형이든 저장할 수 있다.

List<T> MSDN : https://msdn.microsoft.com/ko-kr/library/6sh2ey19%28v=vs.110%29.aspx

에서 다양한 기능을 확인할 수 있다.

블로그 이미지

Link2Me

,