[WPF] 공공데이터 포털 API 이용 클라이언트 구현 Part 3

이미지
그룹핑 ListViewItem 그룹핑 할 수 있습니다. 먼저 CheckBox에 Checked 이벤트를 통해 그룹핑을 추가하고 RemoveChecked 이벤트를 통해 그룹핑을 제거 할 수 있도록 CheckBox를 선언 합니다. 1: <!-- Group CheckBox --> 2: <CheckBox Grid.Column="0" 3: Grid.Row="0" 4: Checked="AddGrouping" 5: Unchecked="RemoveGrouping">Group by Name</CheckBox> 그룹 스타일 선언 GroupStyle 속성에 ContainerStyle 속성을 이용해 Style을 지정 합니다. Expander 컨트롤을 이용해 아파트명과 그룹 아이템의 개수를 Expander Header에 표시 하도록 ControlTemlate를 선언 합니다. 1: <!-- Group Style --> 2: <ListView.GroupStyle> 3: <GroupStyle> 4: <GroupStyle.ContainerStyle> 5: <Style TargetType="{x:Type GroupItem}"> 6: <Setter Property="Margin" Value="0,0,0,5" /> 7: <Setter Property="Te...

[자료구조] 배열 (Array)


배열: 

  • 데이터 원소들의 리스트
  • 선형 자료구조


대부분의 자료 구조는 네 가지 기본 방법을 사용하며, 이를 연산 이라 부른다.
  • 읽기: 자료 구조 내 특정 위치를 찾아보는 것
  • 검색: 자료 구조 내에서 특정 값을 찾는 것
  • 삽입: 자료 구조에 새로운 값을 추가하는 것
  • 삭제: 자료 구조에서 삭제 하는 것

c#을 이용해 배열의 연산을 구현해 보았다.

✤ 검색은 삽입, 삭제 알고리즘을 보면 0번째 원소 부터 n번째 원소까지 반복을 하며 일치하는 원소를 삭제 한다.


- 내부 배열 선언
1:  private const Int32 DefaultSize = 10;  
2:  private Int32[] arr;  
3:  private Int32 count;  

- 읽기 (c# indexer 사용)
1:  public int this[int i]  
2:      {  
3:        get { return arr[i]; }  
4:        set { arr[i] = value; }  
5:      }  

- 삽입
1:  public void Insert(int index, int value)  
2:      {  
3:        if (count == DefaultSize)  
4:          throw new ArgumentOutOfRangeException();  
5:    
6:        int currentIndex = count - 1;  
7:        while (currentIndex >= index)  
8:        {  
9:          arr[currentIndex + 1] = arr[currentIndex];  
10:    
11:          if (currentIndex == index)  
12:            arr[index] = value;  
13:    
14:          currentIndex--;  
15:        }  
16:    
17:        count++;  
18:      }  

- 삭제
1:  /// <summary>  
2:      /// 지정한 위치에 데이터를 삭제 한다. (삭제)  
3:      /// </summary>  
4:      /// <param name="index"></param>  
5:      public void Delete(int index)  
6:      {  
7:        if (index > DefaultSize)  
8:          throw new ArgumentOutOfRangeException();  
9:    
10:        int currentIndex = index;  
11:        while (currentIndex <= count)  
12:        {  
13:          arr[currentIndex] = arr[currentIndex + 1];  
14:    
15:          if (currentIndex == count)  
16:            arr[currentIndex] = 0;  
17:    
18:          currentIndex++;  
19:        }  
20:    
21:        count--;  
22:      }  


댓글

이 블로그의 인기 게시물

[C#] Task 완료 시 다른 Task를 자동으로 수행

[C#] 태스크(Task)가 완료될 때 까지 대기하여 결과를 얻는 방법

[C#] 명시적으로 Task 생성 및 실행