728x90
반응형
WPF & C# - List<string> list = new List<string>() ( BinarySearch / 중요 / Sort / 정렬 / 이진트리검색 ) |
MainWindow.xaml
1 2 3 4 | <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top"> <Button x:Name="btn" Height="30" Content="BinarySearch" Click="btn_Click" FontWeight="Bold"/> <Label x:Name="lbl"></Label> </StackPanel> | 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 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 | string[] arr = new string[3]; arr[0] = "arrA"; arr[1] = "arrB"; arr[2] = "arrC"; List<string> list = new List<string>(arr); // == List<string> list = new List<string>(new string[] { "arrA", "arrB", "arrC" }); list.Add("ABC"); list.Add("DEF"); list.Add("GHI"); lbl.Content = ""; // BinarySearch *** 매우중요 *** lbl.Content += "완전 일치하는 값 중 첫번째 index 값 \n"; lbl.Content += list.BinarySearch("ABC") + "\n\n"; // 못찾는다. lbl.Content += "완전 일치하는 값 중 첫번째 index 값 \n"; lbl.Content += list.BinarySearch("C") + "\n\n"; // 예상치 못한 값이다. // BinarySearch *** 매우중요 *** BinarySearch는 정렬되어 있어야만 찾을 수 있다. list.Sort(); lbl.Content += "완전 일치하는 값 중 첫번째 index 값 \n"; lbl.Content += list.BinarySearch("ABC") + "\n\n"; lbl.Content += "완전 일치하는 값 중 첫번째 index 값 \n"; lbl.Content += list.BinarySearch("C") + "\n\n"; // 찾지못할경우 예상못한 값이 출력되었다. 참고하자 lbl.Content += "list<string> 전체 출력 \n"; lbl.Content += string.Join(" / ",list) + "\n\n"; lbl.Content += "list<string> 첫번째 값 가져오기 \n"; lbl.Content += list.First() + "\n\n"; lbl.Content += "list<string> 마지막 값 가져오기 \n"; lbl.Content += list.Last() + "\n\n"; lbl.Content += "list<string> 2번째 아이템 가져오기 \n"; lbl.Content += list.ElementAt(2) + "\n\n"; lbl.Content += "완전 일치하는 값 중 첫번째 index 값 (BinarySearch 보다 느리다고 한다.)\n"; lbl.Content += list.IndexOf("ABC") + "\n\n"; lbl.Content += "완전 일치하는 값 중 마지막 index 값 \n"; lbl.Content += list.LastIndexOf("GHI") + "\n\n"; | cs |
List<string> list = new List<string>()
List<string> list = new List<string>() 의 사용법을 적어봤다.
이중에 BinarySearch 부분이 너무도 중요하다.
이진트리검색이라고 하는데... 예상한 값이 잘 나오지 않는다.
BinarySearch 를 사용하기전 반드시 list를 정렬해 주어야한다.
728x90
반응형