티스토리 뷰

======================================================

안녕하세요 Doridori 입니다.


모두모두 정말 힘든 시기를 보내고 있는데 저희 집은 아이들이 한창 뛰어다닐 시기라 아이들이 너무 갑갑해 하는것 같아 힘드네요.


아파트라 뛰어 다니라고 할 수도 없고 . . . 


와중에 아이들이 잠을 자야 준비를 하는데 안잘려고 하네요 ㅎㅎ 


주저리주저리 ~! 모두 모두 힘냅시다!!


개발자는 사람들과 많이 부딧히는 직종이 아니고 공장쪽에서 개발 하는 경우는 거의 격리된 생활을 해서 일하는데 크게 타격이 없는 점은 다행인듯 합니다. 


자영업 하시는 분들은 정말 힘들어 하시더라구요.


모두들 화이팅 이십니다.!!!

======================================================


42. List 조금 더 알기

 

 

Source UI) Study_42_List_Detail (UI).zip

Soruce 전체) Study_42_List_Detail.zip

교재) 42. List 조금 더 알기.pdf








이번에 준비 한 내용은 List 조금 더 알기 입니다. 


예전에 List에 대해서 대충 애기하고 지나간듯 하여 "간단해서 많이 사용 되는!!" List를 조금 더 간단하게 사용 해보자 라는 의미에서 준비해 보았습니다. ^^;;


무거운 내용도 아니고 어려운 내용도 아니기 때문에 가볍게 꿀팁 몇개 알아 간다 라고 생각하시면 좋을듯 합니다. 


내용이 많아 보이는데 그냥 파란색 글자만 중요하다. 정도만 생각하고 보시면 될듯 합니다.




(UI)


약간 1강을 생각하면서 만들었는데 다른 내용들 보다 List에 대해서 자주 사용 되는 함수, 사용 할 때 편하게 쓰는 법 이런 것들을 알려드리는 느낌으로 준비해 보았습니다. 


저장해 놓으셨다가 필요 할 때 아~ 이거 뭐였더라 싶을때 잠시 보고 넘어가면 좋을 듯 합니다. 


강의)

짧게 할려고 했는데 하다보니 또 길어지네요 ㅡㅡ;;

화면 그리는데에도 시간이 제법 소요가 되니 귀찮으신 분들은 UI를 받으시고 UI 작성 부분은 건너 뛰셔도 됩니다. (UI를 그리면서는 일부러 잡소리만 잔뜩 했네요 ^^;;; 사실 은근 긴장되서 뭐라고 했는지 기억도 잘 안납니다. 핫핫!!)




Source)

몇줄 안되는 부분이기도 하고 그중에서도 주석 달아놓은 부분이 pdf에 사용한 함수들 입니다. 

가볍게 보고 이런게 있구만 하고 넘어가셔도 될듯 합니다. (괜찮다 싶은 기능만 가져다 쓰면 되쥬~ ^^)

중간에 문자열 보간은 preview 느낌으로 . . .


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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace ListDetail
{
    public partial class Form1 : Form
    {
 
        List<object> oList = new List<object>();   // Main List 전역으로 선언
 
        // 진입점
        public Form1()
        {
            InitializeComponent();
        }
 
 
        // Button 추가 Event
        private void btnAdd_Click(object sender, EventArgs e)
        {
            DataAdd();
        }
 
        // tboxData에 KeyDown 시 추가 Event
        private void tboxData_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                DataAdd();
            }
        }
 
        // Button 삭제 Event
        private void btnRemove_Click(object sender, EventArgs e)
        {
            if (numPosition.Value == -1)
            {
                oList.Remove(tboxData.Text);   // List 내의 해당 내용 삭제
            }
            else
            {
                oList.RemoveAt((int)numPosition.Value);    // List 내의 해당 Index 삭제
            }
 
            lboxList.DataSource = oList.ToList<object>();
            LboxNoCreate();
            oList_DataDetail();
        }
 
        // Button 변경 Event
        private void btnChange_Click(object sender, EventArgs e)
        {
            List<object> ListChange = new List<object>();
 
            ListChange = oList.ConvertAll<object>(s => s.ToString().Replace(tboxChangeOld.Text, tboxChangeNew.Text));   // List의 값을 변경 해서 새로운 List를 만듬
 
            lboxChangeList.DataSource = ListChange.ToList();
 
            oChangeList_DataDetail(ListChange);
        }
 
        // ListBoxNo에 줄번호를 넣기 위한 함수
        private void LboxNoCreate()
        {
            List<int> iList = (Enumerable.Repeat(0, oList.Count)).ToList<int>();   // List를 선언 하면서 초기화 (여기에서는 그렇게 필요한 부분은 아님;;)
 
            for (int i = 0; i < iList.Count; i++)
            {
                iList[i] = i + 1;
            }
 
            lboxNo.DataSource = iList.ToList();
        }
 
 
        private void oList_DataDetail()
        {
            tboxList.Text = null;
 
            int iListCount = oList.Count;    // List 내의 항목 크기
            int ilistCapacity = oList.Capacity;    // List의 메모리 할당 크기
            string strListData = string.Join(", ", oList);    // List의 값을 구분자를 포함한 문자로 변경
 
            /****** 문자열 보간 ******/
 
            //StringBuilder sb = new StringBuilder();             // StringBuilder
            //sb.Append("icount : " + iListCount + "\r\n");       
 
            //string steDe = string.Format("icount : {0}", iListCount);     // String.Format
 
            // $@""
            string strListDetail = $@"
    Capacity : {ilistCapacity}
    Count : {iListCount}
    Data : {strListData}
    ";
 
            tboxList.Text = strListDetail;
 
        }
 
 
 
        private void DataAdd()
        {
            if (numPosition.Value == -1)
            {
                oList.Add(tboxData.Text);    // List 끝에 값을 추가 
            }
            else
            {
                oList.Insert((int)numPosition.Value, tboxData.Text);    // List의 해당 Index 부분에 값을 추가
            }
 
            lboxList.DataSource = oList.ToList<object>();
            LboxNoCreate();
            oList_DataDetail();
 
            tboxData.Text = "";
        }
 
 
 
        private void oChangeList_DataDetail(List<object> oChangeList)
        {
            tboxChangeList.Text = null;
 
            int iListCount = oChangeList.Count;
            int ilistCapacity = oChangeList.Capacity;
            string strListData = string.Join(", ", oChangeList);
 
            //List<object> oTEST = oChangeList.GetRange(3, 2);      // List에서 해당 위치에서 지정 범위의 값을 추출
            //oChangeList.Sort();          // List 정렬
 
            string strListDetail = $@"
    Capacity : {ilistCapacity}
    Count : {iListCount}
    Data : {strListData}
    ";
 
            tboxChangeList.Text = strListDetail;
 
        }
 
 
    }
}
 
cs


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함