J'ai joué avec linq ce matin et j'ai des questions sur la comparaison de deux dictionnaires. Je veux comparer deux dicionnaires et rendre la différence. Je suis capable de produire la sortie désirée en minuplant la requête dans ma boucle foreach. Cependant, je me demande s'il y a un opérateur qui me permettrait de simplifier un peu plus. Ci-dessous j'ai énuméré le code que je voudrais simplifier.différence entre deux dictionnaires en utilisant linq
var _ItemsBefore = new SortedDictionary<int, int>() { { 1, 12 }, { 2, 12 } };
var _ItemsAfter = new SortedDictionary<int, int>() { { 1, 11 }, { 2, 8 } { 3, 1 } };
foreach(var item in _ItemsAfter.Except(_ItemsBefore))
{
if(_ItemBefore.ContainsKey(item.Key))
Console.WriteLine(string.format("{0} {1}", item.Key, _ItemsAfter[item.Key] -_ItemsBefore[item.Key]));
else
Console.WriteLine(string.format("{0} {1}", item.Key, item.Value)
}
results
1 -1
2 -4
3 1
Si le premier dictionnaire a {5,10} quel est le résultat de votre sortie? –
Ce serait le même résultat. Je ne suis intéressé que par ce qui a changé. Vous pensez à cela en termes d'inventaire. Avant est tous les articles au début de la journée, après est des éléments à la fin. Vous avez peut-être vendu des articles ou des articles reçus pendant la journée. Je suis intéressé par ce que j'ai vendu et ce que j'ai reçu? J'espère que je suis clair. – poco