Skip to content
Snippets Groups Projects
CollectionExtensions.cs 902 B
Newer Older
  • Learn to ignore specific revisions
  • using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace MasterDevs.ChromeDevTools.ProtocolGenerator
    {
        static class CollectionExtensions
        {
            public static bool CollectionEqual<T>(this ICollection<T> x, ICollection<T> y)
            {
                if (x == null || y == null)
                {
                    return false;
                }
    
                if(x.Count != y.Count)
                {
                    return false;
                }
    
                return x.All(e => y.Contains(e));
            }
    
            public static int GetCollectionHashCode<T>(this ICollection<T> x)
            {
                int hash = 17;
    
                unchecked
                {
                    foreach (var e in x)
                    {
                        hash = hash * 23 + e.GetHashCode();
                    }
                }
    
                return hash;
            }
        }
    }