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);
}
}
}