返回通用列表并将其传递给另一个方法

时间:2014-01-13 12:32:22

标签: c# html-agility-pack

我写了一小段代码来将网址抓取到列表中。

public Parse(HtmlDocument doc)
    {
        List<string> top = new List<string>();
        try
        {
            HtmlNodeCollection node = doc.DocumentNode.SelectNodes("//*[@id='content']/ul/li/a");
            if (node != null)
            {
                foreach (var item in node)
                {
                    Console.WriteLine(item.Attributes["href"].Value);
                    top.Add(item.Attributes["href"].Value);
                }
            }
            Console.ReadLine();
        }
        catch(Exception e)
        {
            Console.WriteLine(e);
        }
    }

    public sub(HtmlDocument doc)
    {

    }

当我尝试返回列表“top”时,它出现错误“由于'ConsoleApplication1.go.Parse(HtmlAgilityPack.HtmlDocument)'返回void,返回关键字后面不能跟一个对象表达式”我想知道的问题是如何返回列表顶部的刮缩缩限并将它们传递给方法“sub”?感谢您提供任何建议。

3 个答案:

答案 0 :(得分:1)

将您的函数声明更改为:

public List<string> Parse(HtmlDocument doc)

答案 1 :(得分:1)

您需要为方法指定返回类型。所以这个:

public Parse(HtmlDocument doc)

变为:

public List<string> Parse(HtmlDocument doc)

答案 2 :(得分:1)

正如其他答案已经说过的那样:您还必须更改功能的返回类型:

public List<string> Parse(HtmlDocument doc)

然后将它传递给sub你首先必须扩展sub的参数:

public sub(HtmlDocument doc, List<string> top)
{

}

然后在你的代码中你可以调用这样的函数:

var top = Parse(htmlDocument);
sub(htmlDocument, top);