Ошибка парсинга через AngleSharp ArgumentOutOfRangeException

128
13 февраля 2019, 05:50

По нажатию кнопки вызывается метод

   private async void ParseInfoLeftNick()
    {
        var config = Configuration.Default.WithDefaultLoader();
        var document = await BrowsingContext.New(config).OpenAsync("https://warthunder.ru/ru/community/userinfo/?nick=_____BO_____");
        string lionEarned = document.All.Where(m =>
    m.LocalName == "li" &&
    m.HasAttribute("class") &&
    m.GetAttribute("class").Contains("profile-stat__list-item")
    ).ElementAt(15).TextContent.ToString();
        TextSearch.SetText(lionEarned, TextView.BufferType.Normal);
    }

Но при развертывании на устройстве (Android Xamarin) появляется ошибка System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: index

В то же время аналогичный код в Windows Form работает. Что я делаю не так?

Answer 1

Подозреваю, что косяк тут:

.ElementAt(15).

Вы уверены, что по 15 индексу всегда будет какое-то значение? Например, ваше предыдущие селекторы могли ничего не найти=> вернуть пустую коллекцию, а вы пытаетесь обратится к индексу, которого нет.

Answer 2

Проблема решена. Во время дебага инет на телефоне был отключен)

READ ALSO
C# Как перекодировать текст \uNNNNNN в кириллицу

C# Как перекодировать текст \uNNNNNN в кириллицу

Устал уже биться над проблемой, поиск в интернет не дал результатаИмеется Basic авторизация веб-апи

150
OrderBy не сортирует

OrderBy не сортирует

Есть следующий код

149
Как сделать авторизацию по имени в .net core 2.1?

Как сделать авторизацию по имени в .net core 2.1?

делаю чат и параллельно учуnet core 2

133
Async/await в DataLayer - потерял преимущества

Async/await в DataLayer - потерял преимущества

В небольшом приложении получаю данные из SQL во ViewModel напрямую через SqlCommandExecuteReaderAsync() и SqlDataReader

151