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