C#:char数组与2的方法,一种方法,可直接长度扭转。一种方法用值。为什么第二个方法不起作用?

问题描述 投票:1回答:1

我创建两种方法来反转字符数组,当我给长度到一个临时字符数组,然后做反向,它的工作原理(梅索德:reversChar:“字符[] tempChar =新字符[testChar.Length];”),但是,当我给值到temp char数组,然后做反向,它不工作(梅索德:reversCharVersion2: “字符[] tempChar = testChar;”)。任何人都可以看的问题,并帮助我找到了原因,非常感谢。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test
{
    class Test
    {
        public char[] reversChar(char[] testChar)
        {

            char[] tempChar = new Char[testChar.Length];
            for (int i = 0; i < testChar.Length; i++)
            {
                tempChar[i] = testChar[(testChar.Length - 1) - i];
            }
            return tempChar;
        }

        public char[] reversCharVersion2(char[] testChar)
        {
            char[] tempChar = testChar;
            for (int i = 0; i < testChar.Length; i++)
            {
                tempChar[i] = testChar[(testChar.Length - 1) - i];
            }
            return tempChar;
        }

        static void Main(string[] args)
        {
            //Vorbereitung Test Data
            Test myTest = new Test();
            char[] testChar = { '1', '2', '3', '4', '5' };
            char[] outputChar;

            //Methode 1 funktioniert
            outputChar = myTest.reversChar(testChar);
            Console.WriteLine(outputChar);

            //Methode 2 funktioniert nicht
            outputChar = myTest.reversCharVersion2(testChar);
            Console.WriteLine(outputChar);
        }
    }
}
c# arrays char reverse
1个回答
0
投票

第一个是不逆转。它只是复制原始字符数组,以相反的顺序一个新的数组。

但是在第二种情况下,您使用的是相同的阵列,它们的值越来越更换了相同的地方。您在第二种情况下所得到的输出是54345,您需要使用下面的第二种情况下的代码

public char[] reversCharVersion2(char[] testChar)
{
     char[] tempChar = testChar;
     char temp;
     for (int i = 0; i < (testChar.Length/2); i++)
     {
         temp = tempChar[i];
         tempChar[i] = testChar[(testChar.Length - 1) - i];
         testChar[(testChar.Length - 1) - i] = temp;
     }
     return tempChar;
}
© www.soinside.com 2019 - 2024. All rights reserved.