area-System.Drawinghelp wanted
Metriche repository
- Star
- (4100 star)
- Metriche merge PR
- (Merge medio 14g 22h) (56 PR mergiate in 30 g)
Descrizione
Description
We use the following code to compare two icons:
private static bool IconEquals(Icon icon1, Icon icon2) {
var stream1 = new System.IO.MemoryStream();
icon1.Save(stream1);
var stream2 = new System.IO.MemoryStream();
icon2.Save(stream2);
return System.Linq.Enumerable.SequenceEqual(stream1.ToArray(), stream2.ToArray());
}
With the net6.0 release the stream.ToArray() method each time returns different results for the same Icon. You can modify the IconEquals as follows and it will return false:
private static bool IconEquals(Icon icon1) {
var stream1 = new System.IO.MemoryStream();
icon1.Save(stream1);
var stream2 = new System.IO.MemoryStream();
icon1.Save(stream2);
return System.Linq.Enumerable.SequenceEqual(stream1.ToArray(), stream2.ToArray());
}
Reproduction Steps
Launch the following code with any Icon:
private static bool IconEquals(Icon icon1) {
var stream1 = new System.IO.MemoryStream();
icon1.Save(stream1);
var stream2 = new System.IO.MemoryStream();
icon1.Save(stream2);
return System.Linq.Enumerable.SequenceEqual(stream1.ToArray(), stream2.ToArray());
}
Expected behavior
The IconEquals method should return true.
Actual behavior
The IconEquals method returns false.
Regression?
Works on net5.0
Known Workarounds
No response
Configuration
Windows 10
Other information
No response