Esempio n. 1
0
        public void TestMultiDimIntArray_Values()
        {
            int val = 0;

            int[,,] sarr1 = new int[2, 3, 5];
            IterateArrayWithValues(sarr1, 0, new int[sarr1.Rank], ref val);

            var doc = XmlSerializer.Serialize(sarr1, 1, "test1");

            //Debug.Log("Save: " + Application.persistentDataPath + "/test.xml");
            //doc.Save(Application.persistentDataPath + "/test.xml");

            int[,,] darr1 = XmlDeserializer.Deserialize(doc.InnerXml, 1) as int[, , ];

            Assert.NotNull(darr1);
            Assert.AreNotSame(sarr1, darr1);
            Assert.AreEqual(3, darr1.Rank);
            Assert.AreEqual(2, darr1.GetLength(0));
            Assert.AreEqual(3, darr1.GetLength(1));
            Assert.AreEqual(5, darr1.GetLength(2));

            //manually test individual elements
            Assert.AreEqual(2, darr1.GetValue(0, 0, 1));
            Assert.AreEqual(6, darr1.GetValue(0, 1, 0));
            Assert.AreEqual(22, darr1.GetValue(1, 1, 1));
        }
 /// <summary>
 /// 输出矩阵
 /// </summary>
 /// <param name="name"></param>
 /// <param name="matrix"></param>
 static void PrintMatrix(string name, int[,,] matrix)
 {
     Console.WriteLine("{0}: [{1}, {2}, {3}]", name, matrix.GetLength(0), matrix.GetLength(1), matrix.GetLength(2));
     for (var i = 0; i < matrix.GetLength(0); i++)
     {
         for (var j = 0; j < matrix.GetLength(1); j++)
         {
             for (var k = 0; k < matrix.GetLength(2); k++)
             {
                 Console.Write("{0},", matrix.GetValue(i, j, k));
             }
             Console.WriteLine();
         }
         Console.WriteLine();
     }
 }
Esempio n. 3
0
        public void MultiDimensionalArray()
        {
            int[,,] multiArray  = new int[2, 3, 4];
            multiArray[1, 2, 3] = 7698;
            multiArray[0, 1, 1] = 278;
            multiArray[0, 0, 0] = 325;
            byte[] data = BytesStream.Serialize(multiArray);
            int[,,] decod = BytesStream.Deserialize <int[, , ]>(data);

            Assert.AreEqual(multiArray.Length, decod.Length);
            var arrayIndex = new ArrayIterator(new int[] { 2, 3, 4 });

            for (int i = 0; i < multiArray.Length; i++)
            {
                int[] indices = arrayIndex.GetNext();
                Assert.AreEqual(multiArray.GetValue(indices), decod.GetValue(indices));
            }
        }
Esempio n. 4
0
    static void Main()
    {
        int[,] twoDim = { { 1,  2,  3,  4 },
                          { 5,  6,  7,  8 },
                          { 9, 10, 11, 12 } };

        for (int i = twoDim.GetLowerBound(0); i <= twoDim.GetUpperBound(0); ++i)
        {
            for (int j = twoDim.GetLowerBound(1); j <= twoDim.GetUpperBound(1); ++j)
            {
                Console.WriteLine(twoDim[i, j]);
            }
        }


        //https://msdn.microsoft.com/tr-tr/library/system.array.getlowerbound(v=vs.110).aspx

        // Create a one-dimensional integer array.
        int[] integers = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 };
        // Get the upper and lower bound of the array.
        int upper = integers.GetUpperBound(0);
        int lower = integers.GetLowerBound(0);

        Console.WriteLine("Elements from index {0} to {1}:", lower, upper);
        // Iterate the array.
        for (int ctr = lower; ctr <= upper; ctr++)
        {
            Console.Write("{0}{1}{2}", ctr == lower ? "   " : "",
                          integers[ctr],
                          ctr < upper ? ", " : Environment.NewLine);
        }

        Console.WriteLine();


        // Two-dimensional array.
        // Create a two-dimensional integer array.
        int[,] integers2d = { { 2,  4 }, { 3,  9 }, { 4, 16 }, { 5, 25 },
                              { 6, 36 }, { 7, 49 }, { 8, 64 }, { 9, 81 } };
        // Get the number of dimensions.
        int rank = integers2d.Rank;

        Console.WriteLine("Number of dimensions: {0}", rank);

        for (int ctr = 0; ctr < integers2d.Rank - 1; ctr++)
        {
            Console.WriteLine("   Dimension {0}: from {1} to {2}", ctr, integers2d.GetLowerBound(ctr), integers2d.GetUpperBound(ctr));
        }

        // Iterate the 2-dimensional array and display its values.
        Console.WriteLine("   Values of array elements:");
        for (int outer = integers2d.GetLowerBound(0); outer <= integers2d.GetUpperBound(0); outer++)
        {
            for (int inner = integers2d.GetLowerBound(1); inner <= integers2d.GetUpperBound(1); inner++)
            {
                Console.WriteLine("      {3}{0}, {1}{4} = {2}", outer, inner, integers2d.GetValue(outer, inner), "{", "}");
            }
        }


        Console.WriteLine("      {4}{0}, {1}, {2}{5} = {3}", 0, 1, 2, 3, "{", "}");


        // Three-dimensional array.

        int[, ,] integer3d =
        {
            { {  1,  2,  3 },
                                    { 4, 5, 6 },
                                    {                       7, 8, 9 } },
            { { 10, 11, 12 },
                                    { 13, 14, 15 },
                                    {                       16, 17, 18 } },
            { { 19, 20, 21 },
                                    { 22, 23, 24 },
                                    { 25, 26, 27 } }
        };

        // Get the number of dimensions
        rank = integer3d.Rank;
        Console.WriteLine("Number of dimensions: {0}", rank);
        for (int ctr = 0; ctr < integer3d.Rank - 1; ctr++)
        {
            Console.WriteLine("   Dimension {0}: from {1} to {2}", ctr, integer3d.GetLowerBound(ctr), integer3d.GetUpperBound(ctr));
        }

        for (int outer = integer3d.GetLowerBound(0); outer <= integer3d.GetUpperBound(0); outer++)
        {
            for (int inner = integer3d.GetLowerBound(1); inner <= integer3d.GetUpperBound(1); inner++)
            {
                for (int innerr = integer3d.GetLowerBound(2); innerr <= integer3d.GetUpperBound(2); innerr++)
                {
                    Console.WriteLine("      {4}{0}, {1}, {2}{5} = {3}", outer, inner, innerr, integer3d.GetValue(outer, inner, innerr), "{", "}");
                }
            }
        }

        Console.ReadLine();
    }
Esempio n. 5
0
 static void Test3()
 {
     int[, ,] arr = { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 7, 8, 10 }, { 11, 12, 13 } } };
     int[] i = { 1, 1, 1 };
     Console.WriteLine(arr.GetValue(i));
 }