Ausführung habe ich den folgenden Code:C# Methode ist nicht sequentiell
public Dictionary<int, Ticket> GetNewTickets()
{
Dictionary<int, Ticket> output = new Dictionary<int, Ticket>();
foreach (KeyValuePair<int, Ticket> item in ticketStore)
{
if (!ticketStoreNew.ContainsKey(item.Key))
{
output.Add(item.Key, item.Value);
}
}
ticketStoreNew = ticketStore;
return output;
}`
Es ein Wörterbuch nimmt, ticketStore
, überprüft, um zu sehen, ob es irgendwelche neuen Elemente nicht in ticketStoreNew hat und legt sie in der Ausgabe-Wörterbuch. Dann wird TicketStoreNew auf TicketStore gesetzt, bis TicketStore mit einer anderen Methode aktualisiert wird und diese Methode erneut ausgeführt wird.
Wenn ich jedoch die Zeile ticketStoreNew = ticketStore
einfüge, gibt das Programm ein leeres Wörterbuch zurück. Es sieht so aus, als ob die Methode nicht sequentiell ausgeführt wird und vor der for-Schleife ausgeführt wird.
Ich muss wirklich nur alle neuen Elemente, die zum ticketStore
Wörterbuch hinzugefügt werden.
EDIT Unten ist der Code für ticketStore
bekommen:
public void UpdateTickets(string inputXml)
{
// If no new tickets exit
if (inputXml.Trim() == "") { return; }
//xmlString = inputXml;
// Load XML into an enumerable
XElement xelement = XElement.Parse(inputXml);
IEnumerable<XElement> xml = xelement.Elements();
foreach (var item in xml)
{
if (item.Name == "incident")
{
int id;
// If ID can be converted to INT
if (Int32.TryParse(item.Element("id").Value, out id))
{
// If ticket is not already in store create ticket and populate data
if (!ticketStore.ContainsKey(id))
{
Ticket ticket = new Ticket();
ticket.id = id;
ticket.number = Int32.Parse(item.Element("number").Value);
ticket.title = item.Element("name").Value;
ticket.description = item.Element("description").Value;
ticketStore.Add(id, ticket);
}
}
}
}
}
}
Die Karten alle auf dem Erhalten XML aus der SAManage API basieren.
Geben Sie bitte Methode, die ticketStore wie diese aktualisiert würde hier relevant sein. –
Ich habe den ursprünglichen Post bearbeitet, um die Update-Methode einzuschließen. Der Ticketspeicher und seine Ticketelemente werden alle aus XML generiert, das von einem API-Aufruf abgerufen wird. –
mike z: Ich habe versucht, 'ticketStoreNew = ticketStore' mit deinem Code zu ersetzen, aber es macht dasselbe. Es gibt ein leeres Wörterbuch zurück, aber wenn die Zeile auskommentiert ist, werden einige Elemente zurückgegeben. –