使用String.Contains的NullReferenceException

时间:2013-04-12 12:34:18

标签: f#

我不知道为什么我在以下代码的List.filter部分得到了Exception:

pdfLinks |> List.filter(fun x -> x.Contains("shop")) |> List.iter (printfn "%s")

pdfLinks的类型为“字符串列表”,并且填充了大量包含“shop”一词的字符串。

在带有虚拟列表的F#Interactive中可以正常工作。原始文件是通过解析HTML文件生成的,但是通过手表检查它显示它具有所需类型的所需值。

知道可能发生的事情吗?

谢谢!

1 个答案:

答案 0 :(得分:7)

尝试在System.String.IsNullOrEmpty中添加对List.filter的来电,看看它是否解决了问题:

pdfLinks
|> List.filter(fun x ->
    (not <| System.String.IsNullOrEmpty x) &&
    x.Contains("shop"))
|> List.iter (printfn "%s")