Dictionary Compare in C# for Selenium

Dictionary compare can be used to compare two set of data in C# and it’s often used by Automation testers

        public static Boolean CompareDictionary(Dictionary<string, Dictionary<string, object>> D1, Dictionary<string, Dictionary<string, object>> D2)
        {
            var dic1a=new Dictionary<string, object>();
            if (D1 == null && D2 == null) return true;
            else if (D1 == null || D2 == null) return false;

            if (D1.Count != D2.Count) return false;
     
            if (D1.Keys.Except(D2.Keys).Any()) return false;
            if (D2.Keys.Except(D1.Keys).Any()) return false;
     
            foreach (string Key in D1.Keys)
            {
                 if (!D2.ContainsKey(Key)) return false;
         
                foreach(var subkeys in D1[Key].Keys)
                {
                    var a1 = ((D1[Key][subkeys]).ToString()).Trim();
                    var a2 = ((D2[Key][subkeys]).ToString()).Trim();
                    if(a1.Equals(a2))
                    {

                    }
                    else
                    {
                        return false;
                    }
               
                }
      
            }
            return true;
        }

All the testers have to do is prepare two set of dictionaries one is Expected and another one is Actual

You may also like...