0

私は取得しています

オブジェクト参照が設定されていません

このプログラムの例外..

収納場所にOutput1[k++]問題が…

コード:

    Class stringsor
      { 
        public static string[] output1;
        public static void sortstrings(string[] input1)
          {
            int k = 0;
            foreach (var item in input1)
             {

                output1[k++] = (item.OrderBy(i => i)).ToString();
             }

Linq を使用した並べ替え

             output1 = new string[k];

              foreach(var item in output1)
              {
                Console.WriteLine(item);
              }
           }

            public static void Main(string[] args)
             {
              string[] input1 = { "Adkad","jor","ioeuo","zkas","aka","nma"};
              sortstrings(input1);
             }
          }
4

2 に答える 2

1

を宣言しoutput1ましたが、初期化していません。

で使用する前にsortStrings、試してみてください。

output1 = new string[input1.Length];
于 2013-05-26T06:23:00.203 に答える
0

問題は、出力配列を使用する前に初期化していないことです。すでにLINQを使用しているため、以下のように出力配列を直接初期化して割り当てることができます

    public static void sortstrings(string[] input1)
    {
        output1 = input1.Select(word => new string(word.OrderBy(i => i).ToArray())).ToArray();

        foreach (var item in output1)
        {
            Console.WriteLine(item);
        }
    }

文字列配列をソートしたい。

しかし、現在行っていることは、出力配列内の文字の順序を逆にすることです。文字列配列のソートではありません。それはあなたが期待するものですか?文字列を注文する必要がある場合は、以下のようにできます

output1 = input1.OrderBy(word => word).ToArray();
于 2013-05-26T06:42:46.227 に答える