public static IList <TLink> AllIndices <TLink>(this ILinks <TLink> links, params TLink[] restrictions) { var arraySize = CheckedConverter <TLink, ulong> .Default.Convert(links.Count(restrictions)); if (arraySize > 0) { var array = new TLink[arraySize]; var filler = new ArrayFiller <TLink, TLink>(array, links.Constants.Continue); links.Each(filler.AddFirstAndReturnConstant, restrictions); return(array); } else { return(Array.Empty <TLink>()); } }
private static void FillArray(this int[] array, ArrayFiller filler, int count) { array = new int[count]; var rnd = new Random(); for (var i = 0; i < array.Length; i++) { if (filler == ArrayFiller.Enumerate) { array[i] = ++i; } if (filler == ArrayFiller.Random) { array[i] = rnd.Next(1, 1000); } } _array = array; }
public void Fill2DArrayTest() { int[,] a1 = new int[5, 3]; int[,] a2 = new int[5, 3]; for (int x = 0; x < 3; x++) { for (int y = 0; y < 5; y++) { a1[y, x] = y * 10 + x; a2[y, x] = y * 10 + x + 3; } } int[,] b = new int[10, 3]; ArrayFiller.Fill2DArray(b, a1, 0, 0); ArrayFiller.Fill2DArray(b, a2, 5, 0); for (int x = 0; x < 3; x++) { for (int y = 0; y < 5; y++) { Assert.AreEqual(y * 10 + x, b[y, x]); } } }