Вложенный XML в словарь

Я пытаюсь преобразовать данные XML в словарь. У меня проблемы с одинаковыми именами узлов. C # .Net 3.5

Пример XML = проблема в том, что я не могу это контролировать. Мне просто нужно это обработать.



  val1
  val2
  
    param1
    paramval1
  
  
    param2
    paramval2
  

Моя попытка:

XMLStream.Position = 0;
        XElement xmlDetails2 = XElement.Load(new System.IO.StreamReader(XMLStream));
        var x = xmlDetails2.Elements().ToDictionary(
            e => e.Name.LocalName,
            e => e.Elements()
                      .ToDictionary(
                          f => f.Name.LocalName,
                          f => f.Value));

Ошибка, которую я получаю (что, конечно, имеет смысл):

An item with the same key has already been added.

Ожидаемый результат (из примера xml):

a1 => val1
a2 => val2
param1 => paramval1
param2 => paramval2
...

Я создал свой собственный на основе предложения @ L.B. Это'Это не лучшее решение, но пока оно работает.

public void XMLTODictionary(XElement xmlDetails, ref Dictionary dic)
{
    foreach (var node in xmlDetails.Elements())
    {
        if (node.Name.LocalName.Equals("parameter", StringComparison.CurrentCultureIgnoreCase))
        {
                dic.Add(node.Element("ParameterName").Value, node.Element("ParameterValue").Value);
        }
        else
        {
            dic.Add(node.Name.LocalName, node.Value);
        }
    }
}

Ответы на вопрос(4)

Ваш ответ на вопрос