www.pudn.com > sudoku.rar > TechniqueCollection.cs


//-------------------------------------------------------------------------- 
//  
//  Copyright (c) Microsoft Corporation.  All rights reserved.  
//  
//  File: FastBitArray.cs 
// 
//  Description: A collection of EliminiationTechnique objects. 
//  
//-------------------------------------------------------------------------- 
 
using System; 
using System.Text; 
using System.Collections; 
using Microsoft.Sudoku.Techniques; 
 
namespace Microsoft.Sudoku.Collections 
{ 
	/// A collection of EliminationTechnique instances. 
	[Serializable] 
	public sealed class TechniqueCollection : CollectionBase 
	{ 
		/// Initializes the collection. 
		public TechniqueCollection() { } 
 
		/// Initializes the collection. 
		/// The techniques with which to initialize the collection. 
		public TechniqueCollection(params EliminationTechnique [] techniques) 
		{ 
			if (techniques == null) throw new ArgumentNullException("techniques"); 
			foreach(EliminationTechnique et in techniques) if (et == null) throw new ArgumentException("techniques"); 
			InnerList.AddRange(techniques); 
		} 
 
		/// Adds an elimination technique to the list. 
		/// The elimination technique to be added. 
		public void Add(EliminationTechnique elimination) 
		{ 
			if (elimination == null) throw new ArgumentNullException("elimination"); 
			InnerList.Add(elimination);  
		} 
 
		/// Gets an elimination technique in the list. 
		public EliminationTechnique this[int index] 
		{ 
			get { return (EliminationTechnique)InnerList[index]; } 
		} 
 
		/// Sorts the list. 
		/// The comparer to use for sorting. 
		public void Sort(IComparer comparer) 
		{ 
			InnerList.Sort(comparer); 
		} 
	} 
}