На самом деле у вас все идет хорошо, но вы можете немного его упростить (не проверено):
from xElem in doc.Descendants(StringLiterals._streamNodeName)
let typeAttributeValue = xElem.Attribute(StringLiterals._typeAttributeName).Value
where typeAttributeValue == StringLiterals._sW... ||
typeAttributeValue == StringLiterals._sNormal
select new AccuRevXmlElement
{
_location = xElem.Attribute(StringLiterals._nameAttributeName).Value,
_streamNumber =
xElem.Attribute(StringLiterals._streamNumberAttributeName).Value
};
Ключевым отличием является ключевое слово let
, которое вводит новую переменную внутри запроса, и тот факт, что вы можете сравнивать строки, используя оператор ==
, поскольку System.String
реализует этот оператор.