|
// Copyright 2008 Adrian Akison
// Distributed under license terms of CPOL http://www.codeproject.com/info/cpol10.aspx
using System;
using System.Collections.Generic;
using System.Text;
namespace Facet.Combinatorics {
/// <summary>
/// Interface for Permutations, Combinations and any other classes that present
/// a collection of collections based on an input collection. The enumerators that
/// this class inherits defines the mechanism for enumerating through the collections.
/// </summary>
/// <typeparam name="T">The of the elements in the collection, not the type of the collection.</typeparam>
interface IMetaCollection<T> : IEnumerable<IList<T>> {
/// <summary>
/// The count of items in the collection. This is not inherited from
/// ICollection since this meta-collection cannot be extended by users.
/// </summary>
long Count { get; }
/// <summary>
/// The type of the meta-collection, determining how the collections are
/// determined from the inputs.
/// </summary>
GenerateOption Type { get; }
/// <summary>
/// The upper index of the meta-collection, which is the size of the input collection.
/// </summary>
int UpperIndex { get; }
/// <summary>
/// The lower index of the meta-collection, which is the size of each output collection.
/// </summary>
int LowerIndex { get; }
}
}
|
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.
I have been a professional software developer for twenty years, starting with C++ and migrated to C#. While I have transitioned into full time management, writing code is still my passion. As I don't write code for work very often, I have had the opportunity to apply my programming skills as a hobby where I have recently authored two Windows 8 store apps. First, an Asteroids tribute game, 'Roid Rage and most recently Shared Whiteboard (which does what it says).
I make a habit of contributing production code to every project I run. Most notably, I have recently run teams to build The Navigator for The Advertiser newspaper and Street Lights Out for SA Power Networks.