Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

SparseArray for C#

0.00/5 (No votes)
18 Mar 2002 1  
A class that supports sparse arrays

I needed to store information in a grid similar to Excel where I did not want to restrain the user to a fixed multidimensional array that would be mostly unpopulated. Taking a page from NTFS, I decided to create a sparse array.

This array supports the bulk of those things that are supported by the System.Array class. Under the hood, it is using a hash table to store the elements with the index being the key.

Following is an example of how to use the SparseArray class.

// Create a 2 dimensional array

SparseArray array = new SparseArray(2);

// Set elements

array[3, 3] = "Hello";
array[9, 417] = "Nothing";

// Check bounds

int b;
b = array.GetLowerBound(0); // returns 0

b = array.GetLowerBound(1); // returns 0

b = array.GetUpperBound(0); // returns 9

b = array.GetUpperBound(1); // returns 417

b = array.Count; // returns 2


// Retrieve elements

object o = null;
o = array[3, 3]; // returns "Hello"

o = array[1, 1]; // returns null

o = array[9, 417]; // returns "Nothing"


// Walk the array elements

IEnumerator en = array.GetEnumerator();
while (en.MoveNext())
   o = en.Current;

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here