1. 컬렉션류 인터페이스의 특징
2. IEnumerable과 IEnumerator 인터페이스
3. ICollection 인터페이스
4. IList 인터페이스
5.IDictionary 인터페이스
6. IDictionaryEnumerator 인터페이스
1. 컬렉션류 인터페이스의 특징
- 인터페이스들은 컬렉션류 클래스들의 일관성과 사용상의 편리성을 제공한다.
- 컬렉션 인터페이스들은 많은 컬렉션 클래스들 사이에 공통된 사용자 패턴을 제공한다.
- System.Collections
- 컬렉션류 인터페이스의 상속 구조
2. IEnumerable과 IEnumerator 인터페이스
- 특정 클래스가 IEnumerable 인터페이스를 구현했다면 IEnumerator를 사용해서 내부의 데이터를 순방향으로만 접근할 수 있는 기능을 가진 것이다.
- IEnumerator형으로 얻은 객체는 읽기전용 커서를 제공하고 있으며, 데이터의 집합에 대한 순방향으로 검색할 수 있다.
- IEnumerable 인터페이스의 ㅎ마수
: public interface IEnumerable
{
IEnumerator GetEnumerator();
}
- 커서를 데이터 집합의 시작점으로 돌리는 기능도 제공한다.
- IEnumerator 인터페이스 내부의 멤버
: object Current-> 컬렉션에서 현재 객체에 대한 참조를 반환하는 읽기전용 속성
: bool MoveNext()-> 열거자를 컬렉션의 다음 요소로 커서를 이동시킨다.
-> 다음 요소가 존재하지 않는다면 false를, 존재한다면 true 리턴한다.
-> 커서를 이동시킨 뒤 Current 속성을 이용해서 데이터를 추출
: void Reset()-> Current 포인터를 컬렉션의 처음 부분 앞에 있는 정의하지 않은 값으로 다시 설정한다.
-> Reset()을 호출한 후 Current로 접근하기 전에 MoveNext() 호출
3. ICollection 인터페이스
- IEnumerable를 상속하기 때문에 기본적으로 나열의 속성을 가지고 있다.
- 속성과 함수들
: int Count
-> 컬렉션의 객체 수 반환
: bool IsSynchronized
-> 다중 스레드된 액세스를 위해 컬렉션에 대한 액세스를 동기화한 경우 true를 반환한다. 컬렉션이 동기화되는지에 따라서 쓰레드 안정성이 있는지 검사한다
: object SyncRoot
-> 스레드에서 컬렉션에 대한 액세스를 동기화하기 위해 사용할 수 있는 객체 반환
-> CLR은 자동으로 어떤 .NET 형식 객체라도 동기화루트가 되도록 한다.
-> 하나 이상의 코드 문장이 동시에 한 스레드에 의해서만 실행되는 것을 확실하게 하기 위해 잠그거나 해제할 수 있다.
-> ICollection.SyncRoot를 실행하면 항상 적절한 SyncRoot 객체를 반환한다.
: void CopyTo(Array array, int index)
-> 지정한 배열 위치부터 컬렉션의 요소를 배열로 복사한다.
4. IList 인터페이스
- 데이터의 삽입, 삭제, 검색, 인덱서 등의 작업을 할 수 있다.
- IList의 속성
: bool IsFixedSize { get; }
-> 리스트가 고정 길이 리스트인지 체크한다.
: bool isReadOnly { get; }
-> 리스트가 읽기 전용인지 체크한다.
: object this[int index] { get; set; }
-> 인덱스 값으로 데이터를 얻거나 추가할 수 있다.
- IList의 함수
: int Add(object value)
-> 리스트 끝에 데이터를 추가할 수 있다.
: void Clear()
-> 리스트의 모든 데이터를 제거한다.
: bool Contains(object value)
-> 어떤 데이터가 리스트 내에 존재하는지 여부를 체크한다.
: int indexOf(object value)
-> 리스트 내의 특정 데이터의 위치를 반환한다.
: void Insert(int index, object value)
-> 리스트 내의 특정 위치에 데이터를 삽입한다.
: void Remove(object value)
-> 매개변수로 입력된 객체를 리스트 내에서 제거한다.
: void RemeveAt(in index)
-> 참조 또는 인덱스에 의해 지정한 인덱스의 데이터를 제거한다.
5.IDictionary 인터페이스
- 키와 값으로 대응시켜 데이터를 삽입하고 추출하는 방법을 제공한다.
- 키와 값으로 사용되는 데이터형은 object형
- 키는 유일해야 한다.
- IDictionary 인터페이스의 속성
: bool IsFixedSize { get; } -> 컬렉션의 크기가 정해져 있는지 검사한다.
: bool IsReadOnly { get; } -> 컬렉션이 읽기전용인지 검사한다.
: ICollection Keys {get; } -> 컬렉션 내의 모든 키를 나열한다.
: ICollection Values { get; } -> 컬렉션 내의 모든 값을 나열한다.
- IDictionary 인터페이스의 함수
: void Add(object key, object value)
-> 키와 값을 전달하여 데이터를 컬렉션에 추가한다.
: void Clear()
-> 컬렉션을 비운다.
: bool Contains(object Key)
-> 특정 키가 데이터와 연관되어 있는지 검사한다.
: IDictionaryEnumerator GetEnumerator()
-> 키와 값을 나열한다. IDictionaryEnumerator 인터페이스를 반환한다.
: void Remove(object key)
-> 삭제할 값의 키를 전달하여 데이터를 컬렉션에서 삭제한다.
6. IDictionaryEnumerator 인터페이스
- 키와 값을 묶어서 한꺼번에 관리할 수 있도록 해준다.
- IDictionaryEnumerator 인터페이스 속성
: DictionaryEntry Entry { get; } -> 열거 요소 내의 키와 값을 가져온다.
: object Key { get; } -> 열거 요소 내의 키를 가져온다.
: object Value { get; } -> 열거 요소 내의 값을 가져온다.
'[ Program ] > C#' 카테고리의 다른 글
C# 싱글톤 패턴 예제 (0) | 2012.09.17 |
---|---|
[.NET Study 02] C#에서의 배열(Array) (0) | 2012.09.17 |
IEnumerable 과 IEnumerator 인터페이스 (0) | 2012.09.17 |
IEnumerator, IEnumerable (0) | 2012.09.17 |
vs2010 에서 WCF REST 프로젝트 무작정 만들기 (0) | 2012.09.17 |
댓글