Beispiel #1
0
        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]);
                }
            }
        }