Я получаю nullreferenceexception
с помощью htmlagilitypack
, когда мой поиск ничего не возвращает. Мне нужно знать, как справиться с этим в коде. Я пытаюсь использовать ??
, но я не использую его правильно и не совсем уверен, как его использовать. Я просто хочу знать, как запустить некоторый метод, если nodes
пуст. Возможно, я просто проверил бы с IF, если нет лучшего способа.Обработка nullreferenceexception с htmlagilitypack
public DataTable tableIntoTable(HtmlDocument doc)
{
var table = new DataTable("MyTable");
table.Columns.Add("raw", typeof(string));
var xpath = @"//th[@class='ddlabel'] | //table[not(.//*[contains(@*,'pldefault') or contains(@*,'ntdefault') or contains(@*,'bgtabon')])]";
var nodes = doc.DocumentNode.SelectNodes(xpath);
foreach (var node in nodes ?? new HtmlAgilityPack.HtmlNodeCollection {null})
//new is underlined in red, not sure how it's supposed to work
{
table.Rows.Add(node.InnerHtml);
}
return table;
}
возможного дубликата (HTTP://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – Jehof
Почему вы не пытаетесь использовать только этот 'foreach (узел var в узлах) // new is подчеркнуто красным, не уверен, как он должен работать { table.Rows.Add (node.InnerHtml); } ' –