Ваше преобразование пропущено UCase
, чей эквивалент в C # равен ToUpperCase
.
Однако это не рекомендуемый способ сравнения строк без учета регистра.
e.Name.LocalName == searchName
следует заменить на что-то вроде:
String.Compare(e.Name.LocalName, searchNamename, StringComparison.InvariantCultureIgnoreCase) == 0
Кроме того, что такое propertyName
?Что бы это ни было, его значение, очевидно, не зависит от e
.Вы выбираете одну и ту же вещь для каждого e
в своем первом запросе, что не имеет смысла.Я предполагаю, что вы имели в виду select e
.
То, что вы, вероятно, хотите, то что-то вроде:
var resultList = (from e in p_xml.Elements()
where String.Compare(e.Name.LocalName, searchName, StringComparison.InvariantCultureIgnoreCase) == 0
select e).
Union(from a in p_xml.Attributes()
where String.Compare(a.Name.LocalName, searchName, StringComparison.InvariantCultureIgnoreCase) == 0
select a.Value).ToList();
Я только не уверен, как представить Select <<%= propertyName %>><%= a.Value %></>
в C #так как я не знаю VB.