-1

私はオイラーでこの問題を解決しようとしています。整数を文字列の配列に変換したい。この後、各文字列を文字の配列に変換したいのですが、ここからコードでエラーが発生し始めます。

namespace Problem_52_Euler
{
    class Program
    {
        static void Main(string[] args)
        {
            for (uint i = 1; i < 1000000000; i++)
            {
                string[] xint = new string[i];                       
                char[] xArray = xint[i].ToCharArray();      // This line is going out of bounds              
                char[] yArray = xint[i + 1].ToCharArray();

                for (uint j = 0; j < xArray.Length; j++)
                {
                    char xInteger = xArray[j];
                    for (uint k = 0; k < yArray.Length; k++)
                    {
                        char yInteger = yArray[k];
                        if (xArray[0] == yArray[k] && xArray[0 + j] == yArray[k])
                        {
                            Console.WriteLine(" " + i);
                        }
                    }
                }
            }
        }
    }
}
4

1 に答える 1

2

長さ の配列を作成すると、からまでのiインデックスが作成されます。0i-1

iたとえば 4 の場合new string[i]、インデックス 0、1、2、および 3 の配列が生成されます。インデックス 4 のアイテムは存在しないため、アクセスできません。

注: 文字にアクセスするために、文字列を文字の配列に変換する必要はありません。文字の配列であるかのように、文字列の文字にアクセスできます。

また、文字列の配列を作成しても文字列は作成されず、文字列への参照のためのスペースのみが作成されます。配列を作成してから文字列を取得しようとすると、null 参照が返されます。

于 2014-11-16T15:02:50.997 に答える