В C #, как я могу вызвать функцию, которая возвращает список? - PullRequest
7 голосов
/ 05 ноября 2011

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

Ответы [ 2 ]

26 голосов
/ 05 ноября 2011

В вашем коде много разных проблем:

  • Вы создаете пустой список, а затем вызываете 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;  
}  
2 голосов
/ 05 ноября 2011

Я не знаю, что именно вы хотите, но в настоящее время вы должны сделать:

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

и сделайте ваш метод статичным для работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...