Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c System.ArgumentNullException:值不能为null。参数名称:源_C#_Linq - Fatal编程技术网

C# c System.ArgumentNullException:值不能为null。参数名称:源

C# c System.ArgumentNullException:值不能为null。参数名称:源,c#,linq,C#,Linq,我创建的程序需要从网站上读取信息,然后将其存储。我得到一个错误: System.ArgumentNullException:值不能为null。 参数名称:源 在System.Linq.Enumerable.中选择[TSource,TResult]IEnumerable1 source,Func2选择器 然而,它并不总是在错误中运行。就像有时有效,有时无效一样。这怎么可能? 下面是给出错误行4的代码 IEnumerable<string> webtemp = Enumerable.Em

我创建的程序需要从网站上读取信息,然后将其存储。我得到一个错误:

System.ArgumentNullException:值不能为null。 参数名称:源 在System.Linq.Enumerable.中选择[TSource,TResult]IEnumerable1 source,Func2选择器

然而,它并不总是在错误中运行。就像有时有效,有时无效一样。这怎么可能? 下面是给出错误行4的代码

IEnumerable<string> webtemp = Enumerable.Empty<string>();
if (datastring.Contains("today_nowcard-temp"))
{
    webtemp = doc.DocumentNode.SelectNodes("//div[@class = 'today_nowcard-temp']/span").Select(d => d.InnerText.Trim());

    foreach (var this_header in webtemp)
    {
        string[] temporary = this_header.Trim().Replace("Â", "-").Replace(" ", "-").Split('-');
        int f = (Convert.ToInt32(temporary[0]));
        _actualData[0].temp = GetCelsius(f);
        //Console.WriteLine(_actualData[0].temp);
    }
}

此异常背后的原因是SelectNodes方法返回的值。有时它返回null,然后您尝试对null执行Linq操作,它会生成错误。因此,您可以对此执行空检查

var temp= doc.DocumentNode.SelectNodes("//div[@class = 'today_nowcard-temp']/span");

if(temp != null){
//TODO
}

此异常背后的原因是SelectNodes方法返回的值。有时它返回null,然后您尝试对null执行Linq操作,它会生成错误。因此,您可以对此执行空检查

var temp= doc.DocumentNode.SelectNodes("//div[@class = 'today_nowcard-temp']/span");

if(temp != null){
//TODO
}

此DocumentNode.SelectNodes//div[@class='today\u nowcard-temp']/span返回一个null,但是如果没有看到文档中的内容,就无法解释xpath为什么不返回结果。它有时会返回一个结果,从我可以看出xpath没有改变。我们需要看到您文档的xml是@rene正在处理的。看起来您遇到了类似的问题:@t.W.:可能是这样的即使xpath没有更改,您下载的文档仍然是.this DocumentNode.SelectNodes//div[@class='today\u nowcard-temp']/span返回一个null,但是如果没有看到文档中的内容,就无法解释xpath为什么不返回结果。它有时会返回一个结果,从我可以看出xpath没有改变。我们需要看到您文档的xml是@rene正在处理的。看起来您遇到了类似的问题:@t.W.:可能是这样的即使您的xpath没有更改,您下载的文档也会更改。