컬렉션5 : IList 인터페이스 :: C# 인트로[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

C# 인트로
[1]
등록일:2008-03-27 20:03:31 (0%)
작성자:갤러리정
제목:컬렉션5 : IList 인터페이스

7.5 IList 인터페이스

 

IList 인터페이스는 ICollection 인터페이스에서 파생되었습니다. 따라서, IEnumerable ICollection 기능을 모두 포함하고 있습니다. 다음은 IList 상속 구조를 보여주고 있습니다.

 

그림 7-5 IList 인터페이스 상속 구조

 

리스트 형식으로 인덱싱할 있는 기능을 위해서 IList 인터페이스를 구현합니다. 기본으로 제공되는 배열 타입(Array Type) IList 인터페이스를 구현하고 있으며 데이터의 삽입, 삭제, 검색, 인덱서(Indexer) 등의 작업을 있습니다. IList에서 사용할 있는 속성과 메서드들은 다음과 같습니다.

 

IList 인터페이스 속성

bool IsFixedSize {get;}

·   리스트가 고정 길이 리스트인지 체크한다.

bool IsReadOnly {get;}

·   리스트가 읽기전용인지 체크한다.

object this[int index] {get;set;} 

·   인덱스 값으로 데이터을 얻거나 추가할 있다.

·  인덱서(Indexer)

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 RemoveAt(int index);

·   참조 또는 인덱스(Index) 의해 지정한 인덱스의 데이터를 제거한다.

ArrayList 클래스를 사용한 이유는 메모리의 사용에 있어 배열은 한번 메모리가 정해지면 이상 메모리를 늘릴 없지만 ArrayList 클래스의 경우에는 동적으로 메모리가 생성되는 이점을 제공하기 때문입니다. 다음은 동적으로 크기 조정이 가능한 배열을 구현하는 ArrayList 클래스를 사용하여 IList 인터페이스의 메서드들을 사용하고 있습니다. ArrayList 클래스에서 IList 인터페이스를 사용하는 예입니다.

 

&

IListTestExample.cs

Ü IList 테스트하는 예제

using System;
using System.Collections;

public class 
IListTestExample {
  
public static void 
Print(String info, ICollection c) {
    Console.Write(
"{0} 
요소갯수:{1}\t", info, c.Count);
    foreach (Object o in c) {
      Console.Write(
"{0} "
, o);
    }
    Console.WriteLine();
  }

  
public static void 
Main() {
    
int [ ] intArr = {0, 1234
};
    ArrayList array = 
new 
ArrayList(intArr);
    IList al = array; 
//ArrayList
 List 구현한 클래스임
    
Print("1. list 
데이터 목록->",al );
    al.Add(
5);    Print("2. 
데이터를 추가-> ", al);
    al.RemoveAt(
2);  Print("3. 
인덱스[2] 데이터를 삭제->", al);
    al.Remove(
3);    Print("4. 
인덱스[3] 데이터를 삭제->", al);
    al.Insert(
17);    Print("5. 
인덱스[1] 데이터를 삽입->", al);
    Console.WriteLine(
"6. 
데이터 10 존재하나?:[{0}]", al.Contains(10));
    Console.WriteLine(
"7. 
데이터 4 위치는?:[{0}]", al.IndexOf(4));
    al.Clear();
    Print(
"8. 
데이터 전부 삭제 :", al);
  } 
//main
//class

C:\C#Example\07>csc IListTestExample.cs

C:\C#Example\07>IListTestExample

1. list 데이터 목록-> 요소갯수:5        0 1 2 3 4

2. 데이터를 추가->  요소갯수:6  0 1 2 3 4 5

3. 인덱스[2] 데이터를 삭제-> 요소갯수:5       0 1 3 4 5

4. 인덱스[3] 데이터를 삭제-> 요소갯수:4       0 1 4 5

5. 인덱스[1] 데이터를 삽입-> 요소갯수:5       0 7 1 4 5

6. 데이터 10 존재하나?:[False]

7. 데이터 4 위치는?:[3]

8. 데이터 전부 삭제 : 요소갯수:0

 

먼저, ArrayList 객체를 생성하고 있습니다.

 

ArrayList array = new ArrayList(intArr);

 

ArrayList IList 구현하고 있으므로 다음과 같이 ArrayList IList 캐스팅할 있습니다.

 

IList al = array;

 

그리고, IList 인터페이스에서 다음과 같은 메서드들을 테스트하고 있습니다. Add() 메서드는 ArryaList 내로 데이터를 삽입할 이용되는 메서드입니다.

 

al.Add(5);

 

Add() 메서드로 5라는 요소(Element) 추가시켜 주고 있습니다. 5 리스트의 제일 마지막에 추가됩니다. IList에서 사용된 메서드들의 기능들은 다음과 같습니다.

 

al.RemoveAt(2); //RemoveAt() 메서드로 인덱스(index) 2번째 요소(Element) 제거한다.

al.Remove(3);     //Remove() 메서드로 3이라는 요소(Element) 제거한다.

al.Insert(1, 7); //Insert() 메서드로 인덱스(index) 1번째에 7이라는 요소(Element) 삽입한다.

//Contains() 메서드로 10이라는 요소(Element) 있는지 검색한다.

Console.WriteLine("6. 데이터 10 존재하나?:[{0}]", al.Contains(10));

//IndexOf() 메서드로 4라는 요소(Element) 인덱스 위치를 알려준다.

Console.WriteLine("7. 데이터 4 위치는?:[{0}]", al.IndexOf(4));

//모든 요소를 제거한다.

al.Clear();

 

IList 기능에 대하여 개략적으로 알아보았습니다. 다음으로 IDictionary 인터페이스에 대해서 알아보도록 하겠습니다.
[본문링크] 컬렉션5 : IList 인터페이스
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=3054
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.