public static void RemoveChecksums(this Dictionary<Checksum, object> map, ChecksumWithChildren checksums) { var set = new HashSet<Checksum>(); set.AppendChecksums(checksums); RemoveChecksums(map, set); }
private static HashSet <Checksum> Flatten(ChecksumWithChildren checksums) { var set = new HashSet <Checksum>(); set.Add(checksums.Checksum); foreach (var child in checksums.Children) { var checksum = child as Checksum; if (checksum != null) { set.Add(checksum); } var collection = child as ChecksumCollection; if (collection != null) { foreach (var item in collection) { set.Add(item); } } } return(set); }
private static HashSet <Checksum> Flatten(ChecksumWithChildren checksums) { var set = new HashSet <Checksum>(); set.AppendChecksums(checksums); return(set); }
public static void AppendChecksums(this HashSet <Checksum> set, ChecksumWithChildren checksums) { set.Add(checksums.Checksum); foreach (var child in checksums.Children) { if (child is Checksum checksum) { set.Add(checksum); } if (child is ChecksumCollection collection) { set.AppendChecksums(collection); } } }
public static void RemoveChecksums(this Dictionary <Checksum, object> map, ChecksumWithChildren checksums) { map.Remove(checksums.Checksum); foreach (var child in checksums.Children) { if (child is Checksum checksum) { map.Remove(checksum); } if (child is ChecksumCollection collection) { foreach (var item in collection) { map.Remove(item); } } } }
internal static void ChecksumWithChildrenEqual(ChecksumWithChildren checksums1, ChecksumWithChildren checksums2) { Assert.Equal(checksums1.Checksum, checksums2.Checksum); Assert.Equal(checksums1.Children.Count, checksums2.Children.Count); for (var i = 0; i < checksums1.Children.Count; i++) { var child1 = checksums1.Children[i]; var child2 = checksums2.Children[i]; Assert.Equal(child1.GetType(), child2.GetType()); if (child1 is Checksum) { Assert.Equal((Checksum)child1, (Checksum)child2); continue; } ChecksumWithChildrenEqual((ChecksumCollection)child1, (ChecksumCollection)child2); } }
public static void RemoveChecksums(this Dictionary <Checksum, object> map, ChecksumWithChildren checksums) { map.Remove(checksums.Checksum); foreach (var child in checksums.Children) { var checksum = child as Checksum; if (checksum != null) { map.Remove(checksum); } var collection = child as ChecksumCollection; if (collection != null) { foreach (var item in collection) { map.Remove(item); } } } }
private static HashSet <Checksum> Flatten(ChecksumWithChildren checksums) { var set = new HashSet <Checksum>(); set.Add(checksums.Checksum); foreach (var child in checksums.Children) { if (child is Checksum checksum) { set.Add(checksum); } if (child is ChecksumCollection collection) { foreach (var item in collection) { set.Add(item); } } } return(set); }