比较C#Linq语法-vs- VB Linq语法

时间:2016-12-02 16:32:22

标签: c# vb.net linq

我正在尝试将一些C#代码移动到VB中。当我通过Telerik的翻译器运行C#代码时,它会吐出下面的VB代码。 VB代码不会编译并给出" a.Remove()"部分。错误是

  

"表达式不会产生值"

删除"脚本"正确的代码是什么?和" a"标签,所以VB代码的工作原理与C#代码相同?

我原来的C#代码:

 public static HtmlDocument RemoveUselessTags(HtmlDocument doc)
    {
        doc.DocumentNode.Descendants()
            .Where(a => a.Name == "script" || a.Name == "a")
            .ToList()
            .ForEach(a => a.Remove());
        return doc;
    }

我的翻译" VB代码:

  Public Shared Function RemoveUselessTags(doc As HtmlDocument) As HtmlDocument
        doc.DocumentNode.Descendants()
           .Where(Function(a) a.Name = "script" OrElse a.Name = "a")
           .ToList()
           .ForEach(Function(a) a.Remove())
        Return doc
    End Function

1 个答案:

答案 0 :(得分:4)

问题是你正在使用Function,这是返回值的东西。你应该可以使用:

ForEach(Sub(a) a.Remove())