Различать нескольких потомков - PullRequest
1 голос
/ 06 февраля 2011

Я пытаюсь получить несколько потомков и передать эти значения некоторым свойствам в классе.Часть, которую я не могу понять, как я могу выяснить между потомками:

var elements =
  from descendant in doc.Descendants().Where(desc => 
    desc.Name == "Name1" || desc.Name == "Name2" ||  desc.Name == "Name3")
  select new AppInfo.Names 
  {
    Name1 = //here I want to get the Name1 descendant .Value
    Name2 = //here I want to get the Name2 descendant .Value
    Name3 = //here I want to get the Name3 descendant .Value
  };

Можно ли сделать это так?Или я должен сделать новую итерацию по элементам?

1 Ответ

2 голосов
/ 06 февраля 2011

Если AppInfo.Names - это просто массив имен, попробуйте следующее:

var filterNames = new []{"Name1", "Name2", "Name3"};
var elements = from descendant in doc.Descendants()
                   .Where(desc =>filterNames.Contains(desc.Name))
                    select descendant.Value;
AppInfo.Names = elements.ToArray();

EDIT:

В случае, если Names являются свойствами, вы можете использовать что-то вроде:

var names = AppInfo.Names
{
   Name1 = doc.Descendants("Name1").First().Value,
   Name2 = doc.Descendants("Name2").First().Value,
   Name3 = doc.Descendants("Name3").First().Value
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...