Dif on dictionaries should not do a Enumerable-comparison
When using Util.Dif on two dictionaries, I see that a key that was present in both was shown with a white background, the value was changed, however.
However, small dictionaries tend to keep their order and I created these two dictionaries:
17 -> A
18 -> B
vs.
18 -> B
17 -> A
in other words, the only thing different is the order in which I added the elements. Util.Dif now shows the entire thing as different, since it compares 17 with 18 and then 18 with 17.
For dictionaries it would be better to do a key-based comparison and not an index-based comparison. Keys that are new in the second dictionary could be green, keys that have been removed could be red, and keys present in both could be white, and then the values would follow the normal property-change dif look.
Did that make sense?

Available from 5.24
-
Lasse Karlsen commented
I just tested it and I probably did a bad job of explaining it.
Here's an image describing the result in 5.24:
Here's more in line with what I described:
https://imgur.com/a/XcAOy(note that I used Google Sheets to make this example so it lacks the rest of the look from the LINQPad dump, obviously I don't want you to remove those bits :), this is just to demonstrate how I suggested the rows would look)
Here's the code to reproduce:
var d1 = new Dictionary<int, string>();
d1[42] = "Meaning of life";
d1[17] = "Lasse";var d2 = new Dictionary<int, string>();
d2[42] = "Meaning of liff";
d2[28] = "Kristian";
Util.Dif(d1, d2).Dump();