Только начал изучать c# поэтому пока что балуюсь параллельно изучая основы. Решил написать парсер для одного сайта, с помощью AngleSharp библиотеки.
Есть вот такой код взятый с документации
var config = Configuration.Default.WithDefaultLoader();
var address = "https://ru.wikipedia.org/wiki/Google";
var context = BrowsingContext.New(config);
var document = await context.OpenAsync(address);
var google = document.QuerySelector("div.mw-parser-output ul li:nth-child(5)").TextContent;
Который работает и выдает ожидаемый результат "Google — слово английского языка." Но стоит мне заменить допустим :nth-child(5) на :nth-child(6)
То получаю ошибку на 5 строке:
Я понимаю что этого нет на сайте, но я ожидал получить null и уже дальше самому решать что с этим делать. Потому что на моем сайте не на всех страницах существуют теги которые я собираюсь парсить.

var google = document.QuerySelector("div.mw-parser-output ul li:nth-child(5)")?.TextContent;либо убрать .TextContent и проверить на null в следующей строке и решать что и как с этим null делать. По факту, вы ДУМАЕТЕ что знаете как работает код, но на деле - нет. Вы именно в коде указали "я не хочу решать, что делать с null, тут его не будет". А он вдруг - есть! – A K Sep 15 '21 at 16:20null, но после этого вы пытаетесь уnullвызвать свойствоTextContentчто и приводит к исключению. Для того, что бы это работало так, как вы ожидаете вы можете исользовать оператор знак вопроса:document.QuerySelector("div.mw-parser-output ul li:nth-child(5)")?.TextContent– iikuzmychov Sep 15 '21 at 16:20var element = document.QuerySelector("div.mw-parser-output ul li:nth-child(5)")и втораяvar elementContent = element.TextContent;и вы не видите эту склеенность двух строк. Поставьте после первойif(element == null)и вот тогда будет видно, что хотите решать что с этим null делать. Пока что в показанном коде видно, что писавший не ожидает никак null. Ожидающий null поставит ? перед .TextContent – A K Sep 15 '21 at 16:26