我想对字符串数组进行排序。我知道以差异方式实现结果。但我想知道为什么这种方法会抛出错误

时间:2013-05-26 06:20:13

标签: c# string linq sorting

我正在接受

  

未设置对象引用

本程序中的例外情况..

我存储Output1[k++]的地方存在问题......

CODE

    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);
             }
          }

2 个答案:

答案 0 :(得分:1)

您已声明output1,但未对其进行初始化。

sortStrings中使用之前,请尝试。

output1 = new string[input1.Length];

答案 1 :(得分: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();