2014-05-06 250 views
-5

我想從這個函數返回一個數組。這是功能:從函數返回數組。

public static string[] loadServers() { 
       WebClient client = new WebClient(); 
       string getString = client.DownloadString("http://flippr.pw/en/web_service/servers.json"); 
       client.Dispose(); 
       Dictionary<string, Servers> listOfServers = JsonConvert.DeserializeObject<Dictionary<string, Servers>>(getString); 
       return listOfServers; 
      } 

我該如何返回數組到聲明的數組?

+2

'listOfServers'是一個'Dictionary',而不是一個數組。你到底想要什麼? –

+0

在服務器對象上使用linq ToArray()作爲鍵或相關的prop。 – MatthewMartin

+1

你只是想'串'鍵? 'return listOfServers.Keys.ToArray()' – Jonesopolis

回答

-4

你的返回類型是字典,並且在你函數中你指定了返回類型爲string []。

public static Dictionary<string, Servers> loadServers() { 
       WebClient client = new WebClient(); 
       string getString = client.DownloadString("http://flippr.pw/en/web_service/servers.json"); 
       client.Dispose(); 
       Dictionary<string, Servers> listOfServers =      JsonConvert.DeserializeObject<Dictionary<string, Servers>>(getString); 
       return listOfServers; 
      } 
+0

'我試圖從這個函數返回一個數組 - 你不返回一個數組。問題不清楚,所以沒有明確的答案。 –

+1

實際上,*返回類型*是'Array'和OP試圖返回字典 –

+0

這根本不回答問題。 -1 – tnw

1

假設要返回一個字符串數組,然後將下面的示例示出了一個方法:

Dictionary<string, int> listOfServers = new Dictionary<string, int>(); 
listOfServers.Add("Server 1", 123980123); 
listOfServers.Add("Server 2", 123234235); 
string[] results = listOfServers.Select (x => x.Key).ToArray(); 

其中listIfServers的INT部分代表的Servers類型。對於你上面的例子這將是簡單的

return listOfServers.Select (x => x.Key).ToArray(); 

你的方法的簽名,否則更改爲Dictionary<string, Servers>返回類型。