Table of Contents

Method Choose

Namespace
Gamelogic.Extensions.Algorithms
Assembly
Gamelogic.Extensions.dll

Choose<TSource>(IList<TSource>, IGenerator<int>)

Makes a generator that chooses elements from a list using an index generator.

public static IGenerator<TSource> Choose<TSource>(IList<TSource> source, IGenerator<int> indexGenerator)

Parameters

source IList<TSource>

The source list.

indexGenerator IGenerator<int>

The index generator.

Returns

IGenerator<TSource>

A new generator.

Type Parameters

TSource

The type of elements to generate.

Examples

The following will generate "cat" "dog" "cat" "dog":

var generator = Generator.Choose(new[] {"cat", "dog"}, Generator.Count(2));

Exceptions

ArgumentNullException

list or indexGenerator

ArgumentException

List must have at least one element;list

Choose<TSource>(IList<IGenerator<TSource>>, IGenerator<int>)

Makes a generator that uses an index generator to choose a generator to generate an element from.

public static IGenerator<TSource> Choose<TSource>(IList<IGenerator<TSource>> sourceGenerators, IGenerator<int> indexGenerator)

Parameters

sourceGenerators IList<IGenerator<TSource>>

The source generators.

indexGenerator IGenerator<int>

The index generator.

Returns

IGenerator<TSource>

A new generator.

Type Parameters

TSource

The type of element to generate.

Examples

The following generator will interleave the given generators:

//generators is a IEnumerable of generators
var generator = Generator.Choose(generators, Generator.Count(generators.Count());

Exceptions

ArgumentNullException

generators or indexGenerator

ArgumentException

Cannot contain null elements;generators