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 回答