Ситуация: В методе происходит парсинг данных:
var CompareStatLeftLevel_ = documentleft.All.Where(m =>
m.LocalName == "li" &&
m.HasAttribute("class") &&
m.GetAttribute("class").Contains("user-profile__data-item")
).ElementAt(2).TextContent.ToString();
Нужный элемент с индексом [2] всегда последний в списке "user-profile__data-item". Но иногда он может быть с индексом [1]. Тогда логично было бы написать
try{...ElementAt(2)...}
catch (IndexOutOfRangeException)
{...ElementAt(1)...}
Но что делать если индекс будет [0]?
Нашел информацию про использование "when" в блоке "catch", но что туда передавать?
Если ваш элемент последний - то можете использовать .Last()
или .LastOrDefault()
из арсенала Linq (это же IEnumerable)
При этом вместе с .LastOrDefault()
можете использовать Null-условный оператор ?.
если у вас версия C# 6 и выше - будет удобнее обращаться к полям.
.Contains("user-profile__data-item").LastOrDefault()?.TextContent
И ещё хочу заметить - не совсем относящееся к вопросу. Я бы записал ваш пример не как
documentleft.All.Where(m =>
m.LocalName == "li" &&
m.HasAttribute("class") &&
m.GetAttribute("class").Contains("user-profile__data-item")
А более кратко:
document.QuerySelectorAll("li.user-profile__data-item")
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Всем привет ! В питоне есть такая штука как subprocess и создавая его можно заставить программу писать в консоль и читать результат из консолиТ...
Когда добавляешь BoxCollider к новому предмету, он автоматически растягивается под его размерыКогда меняешь меш этого предмета - коллайдер не подтягивается...
Можно ли сохранить массив объектов, в отдельный файл, а потом запустить этот файл в приложении и восстановить массив (который был в файле)...
У меня получается получить значении таким образом (работаю c разными доменами):