Click here to Skip to main content
15,886,518 members
Articles / Programming Languages / C#

Set Collections for C#

Rate me:
Please Sign up or sign in to vote.
4.85/5 (18 votes)
3 Feb 2008CPOL10 min read 115.1K   642   54  
Describes a library of set collections I have written
/* Copyright � 2002-2004 by Aidant Systems, Inc., and by Jason Smith. */ 
using System;
using System.Collections;
using System.Collections.Specialized;

namespace Iesi.Collections
{
	/// <summary>
	/// Implements a <c>Set</c> that automatically changes from a list to a hash table
	/// when the size reaches a certain threshold.  This is good if you are unsure about
	/// whether you data-set will be tiny or huge.  Because this uses a dual implementation,
	/// iteration order is not guaranteed!
	/// </summary>
	[Serializable]
	public class HybridSet : DictionarySet
	{
		/// <summary>
		/// Creates a new set instance based on either a list or a hash table, depending on which 
		/// will be more efficient based on the data-set size.
		/// </summary>
		public HybridSet()
		{
			InternalDictionary = new HybridDictionary();
		}


		/// <summary>
		/// Creates a new set instance based on either a list or a hash table, depending on which 
		/// will be more efficient based on the data-set size, and
		/// initializes it based on a collection of elements.
		/// </summary>
		/// <param name="initialValues">A collection of elements that defines the initial set contents.</param>
		public HybridSet(ICollection initialValues) : this()
		{
			this.AddAll(initialValues);
		}
	}
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

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


Written By
Software Developer (Senior) Imagine Communications
United Kingdom United Kingdom
I have been working in IT since 1975, in various roles from junior programmer to system architect, and with many different languages and platforms. I have written shedloads of code.

I now live in Bedfordshire, England. As well as working full time I am the primary carer for my wife who has MS. I am learning to play the piano. I have three grown up children and a cat.

Comments and Discussions