리스트 항목 수 가져오기
이 문서에서는 리스트에서 항목 수를 가져오는 방법에 대해 설명합니다. 이 액션을 사용하여 리스트에 몇 개의 항목이 있는지를 확인할 수 있습니다.
액션 설명
- 목적: 리스트의 항목 수를 찾아서 반환합니다.
- 입력값:
- List: 항목 수를 가져올 리스트의 인덱스가 저장된 변수입니다. (액션
Create List에 의해 반환됨) - Target: 반환된 항목 수를 저장할 변수입니다. 이 변수는 스크립트나 이벤트 종료 시까지 사용할 수 있는 임시 지역 변수로 플래그를 설정할 수 있습니다.
액션 구문
item_count = GetListItemCount(List);
인자 설명
| 인자 | 설명 |
|---|---|
| List | 항목 수를 가져올 리스트의 인덱스가 들어 있는 변수입니다. |
| Target | 반환된 항목 수를 저장할 변수입니다. |
예제
다음은 리스트의 크기를 가져오고, 그 크기만큼 반복하여 ID를 가진 인스턴스를 제거하는 예제입니다.
var myList = CreateList(); // 리스트 생성
// 리스트에 인스턴스 ID 추가
AddListItem(myList, instance_id_1);
AddListItem(myList, instance_id_2);
AddListItem(myList, instance_id_3);
var itemCount = GetListItemCount(myList); // 리스트의 항목 수 가져오기
for (var i = 0; i < itemCount; i++) {
var instanceID = GetListItem(myList, i); // 리스트에서 인스턴스 ID 가져오기
instance_destroy(instanceID); // 인스턴스 제거
}
FreeList(myList); // 리스트 메모리 해제
다양한 활용 및 응용 예제
- 리스트에서 특정 조건을 만족하는 항목만 제거하기
- 특정 조건을 확인한 후 해당 항목만 삭제합니다.
```gml var myList = CreateList(); // 리스트에 인스턴스 ID 추가 AddListItem(myList, instance_id_1); AddListItem(myList, instance_id_2); AddListItem(myList, instance_id_3);
var itemCount = GetListItemCount(myList);
for (var i = itemCount - 1; i >= 0; i--) { // 거꾸로 반복 var instanceID = GetListItem(myList, i); if (instance_exists(instanceID) && instanceID > 100) { instance_destroy(instanceID); // ID가 100보다 큰 인스턴스 제거 } }
FreeList(myList); ```
- 리스트의 모든 항목에 대해 합계를 구하기
- 리스트에 저장된 숫자 항목들의 합계를 구할 수 있습니다.
```gml var numberList = CreateList(); AddListItem(numberList, 10); AddListItem(numberList, 20); AddListItem(numberList, 30);
var itemCount = GetListItemCount(numberList); var total = 0;
for (var i = 0; i < itemCount; i++) { total += GetListItem(numberList, i); // 숫자를 합산 }
show_message("총 합계: " + string(total)); // 합계 출력 FreeList(numberList); ```
이 예제들은 리스트의 다양한 활용 방법을 보여줍니다. 리스트를 사용하여 데이터를 관리하고 조작하는 데 매우 유용합니다.