dotnet/winforms
Auf GitHub ansehenIcon.Save(stream) each time returns different results
Open
#8.853 geöffnet am 2. Dez. 2021
area-System.Drawinghelp wanted
Repository-Metriken
- Stars
- (4.100 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 14T 22h) (56 gemergte PRs in 30 T)
Beschreibung
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