2011-11-04 58 views
5

在C#中,如何調用返回列表的函數?在C#中,如何調用返回列表的函數?

static void Main(string[] args) 
    { 
     List<string> range = new List<string>(); 
     range.ForEach(item => item.WildcardFiles()); //this is not working    
    } 

    List<string> WildcardFiles(string first) 
    { 
     List<string> listRange = new List<string>(); 
     listRange.Add("q"); 
     listRange.Add("s"); 

     return listRange; 
    } 
+7

目前尚不清楚你想要做什麼。只是調用一個方法很好,但是你想用結果做什麼?您目前正在Main的空列表中調用ForEach ... –

回答

21

有各種各樣的事情你的代碼錯誤:

  • 你創建一個空的列表,然後調用它ForEach。這不會做任何事情。
  • 當您嘗試對字符串調用WildcardFiles時,它不是字符串的一種方法。
  • 你正在試圖調用WildcardFiles這是一個實例方法,無論你的聲明類型是什麼,但沒有任何類型的實例。
  • 你試圖調用WildcardFiles沒有一個參數傳遞的first參數
  • 你忽略調用的返回值WildcardFiles
  • WildcardFiles忽略它的參數

現在我嫌疑人你真的想要這樣的東西:

static void Main(string[] args) 
{ 
    List<string> range = WildcardFiles(); 
    foreach (string item in range) 
    { 
     // Do something with item 
    } 
} 

static List<string> WildcardFiles() 
{ 
    List<string> listRange = new List<string>(); 
    listRange.Add("q"); 
    listRange.Add("s"); 

    return listRange; 
} 
+0

它讓我覺得他想做一個SelectMany類型的東西。不過,你的想法看起來也是可能的。 – Gabe

+0

編譯器不接受這一行:列表 range = WildcardFiles(); –

+0

@CN:它應該 - 我已經將它編譯到我的機器上了。儘管你需要''using'指令來指定'System.Collections.Generic'。你收到什麼錯誤信息? –

1

我不知道你到底想要什麼,但目前你應該這樣做:

range.ForEach(item => WildcardFiles(item)); 

並使你的方法靜態工作。

+0

@Kyle Trauberman爲什麼要實例?正如我寫的,我們應該有一個靜態方法,在downvoting測試之前我說什麼,然後告訴我什麼是錯的。 –

+0

還有比這更多的東西。據推測,人們會想用'WildcardFiles()'返回的列表做些什麼。 –

+1

我錯過了你最後一句話。抱歉。我刪除了downvote。 –

相關問題