2013-05-26 62 views
0

我發現了一個我想排序字符串數組。我知道以不同的方式實現結果。但我想知道爲什麼這個方法拋出一個錯誤

對象未設置

例外,在這個計劃..

我在哪裏存儲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); 
      } 
      } 

回答

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(); 
+0

非常感謝..明白了 – Prashanth

1

您已經聲明output1,但沒有初始化它。

在使用sortStrings之前,請嘗試。

output1 = new string[input1.Length]; 
相關問題