본문 바로가기

Programing (프로그래밍)/WPF & C# (C Sharp)

WPF & C# - List<string> 동적 배열 ( 리스트 / array / dictionary )

728x90
반응형

 

 

 

 WPF & C# - List<string> 동적 배열 ( 리스트 / array / dictionary

 )

 

 

WpfApp10.zip
다운로드

 

 

 

 

MainWindow.xaml

 

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<Window x:Class="WpfApp10.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp10"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <CheckBox x:Name="chk01" Content="chk01" HorizontalAlignment="Left" Margin="14,10,0,0" VerticalAlignment="Top" Click="chk_Click"/>
        <CheckBox x:Name="chk02" Content="chk02" HorizontalAlignment="Left" Margin="14,30,0,0" VerticalAlignment="Top" Click="chk_Click"/>
        <CheckBox x:Name="chk03" Content="chk03" HorizontalAlignment="Left" Margin="14,50,0,0" VerticalAlignment="Top" Click="chk_Click"/>
        <CheckBox x:Name="chk04" Content="chk04" HorizontalAlignment="Left" Margin="14,70,0,0" VerticalAlignment="Top" Click="chk_Click"/>
        <CheckBox x:Name="chk05" Content="chk05" HorizontalAlignment="Left" Margin="14,90,0,0" VerticalAlignment="Top" Click="chk_Click"/>
        <Label x:Name="lbl" Content="Label" HorizontalAlignment="Left" Margin="130,10,0,0" VerticalAlignment="Top" Height="183" Width="102"/>
        <Button x:Name="btn" Content="시작, 끝 넣기" HorizontalAlignment="Left" Margin="14,173,0,0" VerticalAlignment="Top" Width="94" Click="btn_Click"/>
 
    </Grid>
</Window>
 
cs
 

 

 

 

MainWindow.xaml.cs

 

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
List<string> list = new List<string>();
 
private void chk_Click(object sender, RoutedEventArgs e)
{
    CheckBox chk = sender as CheckBox;
 
    lbl.Content = "";
    string str = chk.Content.ToString();
 
    if (chk.IsChecked == true) list.Add(str);
    if (chk.IsChecked == false) list.Remove(str);
    foreach (string a in list) lbl.Content += a + "\n";
}
 
private void btn_Click(object sender, RoutedEventArgs e)
{
    lbl.Content = "";
 
    list.Insert(0"시작");
    list.Insert(list.Count, "끝");
    foreach (string item in list) lbl.Content += item + "\n";
}
cs
 

 

Array, ArrayList, List 차이

 

 Array

   장점 : 가장 빠르다.

   단점 : 배열크기를 미리 정해놓고 써야 한다.

 

 ArrayList

   장점 : 배열크기가 유동적이다.

   단점 : 가장 느리다.(Object 형으로서 형변환때문에 박싱,언박싱이 계속 일어난다고 한다.)

 

 List

   장점 : ArrayList 보다 빠르다. (형을 지정해줘서 박싱, 언박싱이 없다고 한다.)

   단점 : Array 보다 느리다.

 

결론...

배열 사이즈가 고정되어 있으면 Array

배열 유동적이고, 형식도 바뀌면 ArrayList

배열 유동적이고, 형식도 정해저 있으면 List

 

list.RemoveAll(s => s == "");

 

 

728x90
반응형