Попытка загрузить несколько входных XML-файлов в iDictionary<string, Ojbect>
Я нашел один способ построить один словарь из одного входного файла, но он не учитывает несколько входных файлов. Чтобы перейти к следующему шагу: я хочу добавить дополнительные входные файлы в существующий хеш, а также попробовать что-то другое, этот код несколько близок к тому, что я хочу выполнить, но в нем все еще отсутствует синтаксис.
foreach (string file in filePaths)
{
XDocument xdoc = XDocument.Load(file);
allDict = (from m in xdoc.Descendants("msg")
.ToDictionary(m => m.Element("msgId").Value,
m => new msg
{
msgId = m.Element("msgId").Value,
msgType = m.Element("msgType").Value,
name = m.Element("name").Value
}
)
}
1 ответ
Решение
Создайте "главный" объект, затем добавьте значения, которые вы получаете из каждого файла.
Dictionary<string, msg> masterDictionary = new Dictionary<string, mgs>();
foreach (string file in filePath)
{
XDocument xdoc = XDocument.Load(file);
Dictionary<string, msg> fileDictionary = xdoc
.Descendants("msg")
.ToDictionary(m => m.Element("msgId").Value,
m => new msg
{
msgId = m.Element("msgId").Value,
msgType = m.Element("msgType").Value,
name = m.Element("name").Value
});
//now insert your new values into the master
foreach(var newValue in fileDictionary)
masterDictionary.Add(newValue.Key, newValue.Value);
}