web-dev-qa-db-ja.com

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;  
    }  
8
C N

コードにはさまざまな問題があります。

  • 空のリストを作成し、そのリストで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;  
}  
28
Jon Skeet

私はあなたが正確に何を望んでいるのか分かりませんが、現在あなたはすべきです:

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

そして、あなたのメソッドを静的に動かしてください。

2
Saeed Amiri