У меня есть словарь, содержащий строку как TKey и класс "Component" как TValue. Ключи - это значения, которые я получаю из своей базы данных, а значения - из файла XML. В моем первом методе я заполняю свой словарь ключами из базы данных, а во втором методе я хочу получить Pos, где ключ совпадает со строкой в XML-файле.
это небольшой примермоего XML-файла:
<Part No="1">
<Part_001 PartsName="38392000" /><br>
<part_003 SetNo="12" />
</Part>
<Part No="2">
<Part_001 PartsName="37625800" /><br>
<part_003 SetNo="13" />
</Part>
...
и т. д. *
PartsName совпадает со значением ключа, а SetNo - это Pos
класс:
public class Component
{
public string ComponentNr { get; set; }
public string Omschrijving { get; set; }
public int Aantal { get; set; }
public int Pos { get; set; }
}
здесь я получаю значения ключей из базы данных:
Dictionary<string, Component> resultaten = new Dictionary<string, Component>();
Component component = new Component();
if (resultaten.ContainsKey((string)dgReader["artcode"]))
{
resultaten.Add
(
(string)dgReader["artcode"],
component
);
}
и я хочу получить значение XML SetNo и добавить его в поле класса Pos:
Dictionary<string, Component> resultaten = new Dictionary<string, Component>();
var query = (from p in xdoc.Descendants("Part")
where (int)p.Attribute("No") > 0
select new
{
ComponentNr = p.Element("Part_001").Attribute("PartsName").Value,
Pos = Convert.ToInt32(p.Element("Part_003").Attribute("Setno").Value)
});
foreach (var item in query)
{
//code to add to dictionary resultaten
}
Получение ключей и значений происходит двумя различными способами