Click here to Skip to main content
Click here to Skip to main content

A collection class for classic ASP

, 24 Jan 2012
Rate this:
Please Sign up or sign in to vote.
A class that allows the creation and manipulation of collections in classic ASP.

Introduction

Classic ASP has always lacked native support for dynamic arrays and collections. This is a simple utility class that adds this functionality. It is fairly straightforward and easy to use, and provides much of the common functionality that the more advanced languages provide.

Background

I have been writing classic ASP code for several years now, and I never was able find a collection or dynamic array class for classic ASP that provided all of the functionality of a collection in the more advanced languages. I wrote this utility class several years ago, and recently decided to publish it, seeing that there still doesn't appear to be a collection or dynamic array class out there (that I have seen) that supports all of the features this one does.

It is not limited to any type of objects for its elements, and can even have another collection as its item (so you can have a "collection of collections" if you so choose).

Using the code

The code is fairly simple and straightforward to use, as it is more or less your basic collection with a couple of advanced features.

The properties available are:

  • Object Item
  • int Count
  • Array DataArray

The methods available are:

  • int Add(Object value)
  • void AddItems(Array items)
  • void Insert(int index, Object value)
  • void Remove(Object value)
  • void RemoveAt(int index)
  • int IndexOf(Object value)
  • bool Contains(Object value)
  • void Clear()
  • string JoinData(string delimiter)
  • string ToString()
  • void CopyTo(Collection dest)
  • Collection Clone()

Shown below is a simple example of how to use the class:

dim v_col: set v_col = new Collection
v_col.Add("item 1")
v_col.Add("item 2")
v_col.Add("item 3")
v_col.AddItems(Array("item 4", "item 5"))
call v_col.Insert(2, "inserted item 3")

response.write "Count: " & v_col.Count & vbCrLf
response.write "2nd Item: " & v_col(1) & vbCrLf

v_col(1) = "item 2 edit"

response.write "Whole Collection:" & vbCrLf & v_col.ToString() & vbCrLf
response.write "Joined: " & v_col.JoinData(",")

Points of interest

The ToString() and JoinData() methods will look for a ToString() method on the items of the collection, and if they find the method, will use that to convert the item into a string. If they do not find one, they will attempt to convert the item to a string, and failing that will simply say that the item is an Object, and will show the type name of the item (e.g., "[Object: MyObject]").

I did at one time try to write a generic sorting method for this class, but never did get it to work properly with any generic object, and didn't have the time to spend getting it to work. If I ever find that I need this feature in the future, I may add it.

Revision History

  • 10 Dec 2008 - Origional version.
  • 24 Dec 2012 - Updated the download file to include the first revision suggested by ptmcomp.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Flamewave4
Web Developer Onsharp
United States United States
I have been developing websites since 1999, and occasionally will venture into application development. I am proficient in most of the web-based languages and love what I do. I work for a small web development firm based out of Fargo, ND and plan to stay in the web development business for a long time. When I'm not programming I enjoy hiking, biking, woodworking, yard work, and the occasional computer/console game.

Comments and Discussions

 
GeneralMy vote of 5 Pinmembermanoj kumar choubey3-Apr-12 0:36 
Nice
Suggestion.NET ArrayList can be used in Classic ASP PinmemberVerious31-Jan-12 12:26 
GeneralRe: .NET ArrayList can be used in Classic ASP PinmemberFlamewave431-Jan-12 14:07 
GeneralMy vote of 5 Pinmember$2006-Feb-11 17:25 
GeneralRe: My vote of 5 PinprotectorAspDotNetDev24-Jan-12 7:04 
GeneralFREE Classic ASP Framework Pinmemberjosaz24-Apr-09 5:49 
GeneralA question in asp please help Pinmemberaishar21-Dec-08 23:12 
GeneralRe: A question in asp please help PinmemberFlamewave422-Dec-08 4:24 
GeneralPossible improvement Pinmemberptmcomp16-Dec-08 10:37 
GeneralRe: Possible improvement PinmemberFlamewave416-Dec-08 11:28 
GeneralRe: Possible improvement Pinmemberdmeagor24-Jan-12 0:51 
GeneralRe: Possible improvement PinmemberFlamewave424-Jan-12 5:07 
GeneralQuestion PinmemberVerious16-Dec-08 3:18 
GeneralRe: Question PinmemberFlamewave416-Dec-08 11:15 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web03 | 2.8.140721.1 | Last Updated 24 Jan 2012
Article Copyright 2008 by Flamewave4
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid