Сортировка оператора вставки / обновления в LINQ to XML для XElement - PullRequest
0 голосов
/ 23 августа 2010

У меня есть такая структура XML:

<Departments>
   <Department Id="a Guid" IsVisible="True" />
</Departments>

Я создал XML-файл с:

<Departments />

Теперь я хочу добавить значение bool в IsVisible для определенного идентификатора

Если этот идентификатор не существует в xml-файле, я хочу сделать вставку, создающую

новый отдел с Id + IsVisible.

Моя первая проблема начинается здесь:

XElement dep= xDoc.Descendants("Departments").Descendants("Department")
                  .Where(d => d.FirstAttribute.Value == Id).FirstOrDefault();
if (dep != null)
{
    // The node <Department ... /> exist 
}

Сообщение об ошибке: Идентификатор не существует в текущем контексте

Конечно, нет, но это причина, по которой я хочу проверить ....

Также, как я могу проверить Id и сравнить его с моим Id из другого Списка?

Выше я спрашиваю .Value == Id, но я хочу также сравнить значение и, если оно истинно, вернуть узел.

Действительно, передо мной книга XLinq, но ничего не помогло. Что за плохая покупка с непрактичными образцами (Linq для Visual C # 2008)

1 Ответ

1 голос
/ 23 августа 2010

Я сомневаюсь, что «Идентификатор не существует в текущем контексте» на самом деле является сообщением об ошибке.

Я думаю, что более вероятно, будет:

Имя 'Id' не существует в текущем контексте

... что очень отличается. То есть, он не знает, о какой переменной вы говорите. Важно цитировать точные сообщения об ошибках.

Теперь, ваш вопрос не очень ясен - в какой-то момент вы говорите о поиске «определенного идентификатора», а позже вы говорите о том, чтобы найти сравнение идентификатора с «моим идентификатором из другого списка». У вас есть переменная с идентификатором, который вы ищете? Это просто опечатка, и она должна быть «id» вместо «Id»?

...