Ну, код довольно странный, так как SelectNodes всегда возвращает XmlNodeList, поэтому проверка if (nodes == null)
никогда не будет истинной, и вы также можете удалить ее.
Что касается первых двух строк, вы можете заменить их на
List<XElement> nodes = shortcutsXMLDocument.Elements("ShortcutList").Elements(Modality).ToList();
при условии, что переменная Modality
содержит просто имя элемента, а не полное выражение XPath.
Тогда для цикла for
вы можете использовать, например,
foreach (XNode node in nodes[0].Nodes()) {
// do something here with node
}
но я подозреваю, что мы могли бы написать более понятный и простой код, если вы расскажете нам, чего хотите достичь, опубликовав образец XML и объяснение того, какие данные вы хотите извлечь.