FunVec2T   Conversion (T to FunVec2T)

2-dimensional jagged collection with optional lengths, which always yields the same constant value.
C#
var agentSmith = GetSmith();
FunVec2<Agent> jagged = new(agentSmith);
Assert(jagged.Length1 == int.MaxValue);   // since length1 is omitted
Assert(jagged.Length2(42) == int.MaxValue); // since length2 is omitted
Assert(jagged[0][0] == agentSmith);
Assert(jagged[42][42] == agentSmith);
Assert(jagged.GetOrNone(100, 42) == Some(agentSmith));

FunVec2<Agent> jagged = new(agentSmith, Some(50));
Assert(jagged.Length1 == 50);
Assert(jagged.Length2(42) == int.MaxValue); // since length2 is omitted
Assert(jagged[0][0] == agentSmith);
Assert(jagged[42][142] == agentSmith);
Assert(jagged.GetOrNone(100, 2).IsNone);

FunVec2<Agent> jagged = new(agentSmith, Some(50), Some<Func<int, int>>(_ => 2));
Assert(jagged.Length1 == 50);
Assert(jagged.Length2(42) == 2);
Assert(jagged[0][0] == agentSmith);
Assert(jagged[42][1] == agentSmith);
Assert(jagged.GetOrNone(0, 2).IsNone);
Assert(jagged.GetOrNone(50, 0).IsNone);

FunVec2<Agent> jagged = new(agentSmith, Some(50), Some<Func<int, int>>(i => i));
Assert(jagged.Length1 == 50);
Assert(jagged.Length2(0) == 0);
Assert(jagged.Length2(42) == 42);
Assert(jagged[42][1] == agentSmith);
Assert(jagged.GetOrNone(1, 0) == Some(agentSmith));
Assert(jagged.GetOrNone(0, 0).IsNone);
Assert(jagged.GetOrNone(50, 0).IsNone);

Definition

Namespace: Orx.Fun.FunVec
Assembly: Orx.Fun.FunVec (in Orx.Fun.FunVec.dll) Version: 1.0.0
C#
public static implicit operator FunVec2<T> (
	T constantValue
)

Parameters

constantValue  T

[Missing <param name="constantValue"/> documentation for "M:Orx.Fun.FunVec.FunVec2`1.op_Implicit(`0)~Orx.Fun.FunVec.FunVec2{`0}"]

Return Value

FunVec2T

See Also