/// <summary> /// Two records are equal when are fileds of them are equal /// </summary> /// <param name="a">first record</param> /// <param name="b">second record</param> /// <returns>true/false</returns> private bool RecordsAreEqual(Record a, Record b) { bool result = true; result = a.Aggregate(result, (res, kv) => { res &= kv.Value.ToString() == b.GetValueAsString(kv.Key);//all field values are equal return res; }); return result; //a.All(avp => b.Any(bvp => avp.Key == bvp.Key && Object.Equals(avp.Value, bvp.Value))) && b.All(bvp => a.Any(avp => avp.Key == bvp.Key && Object.Equals(avp.Value, bvp.Value))); }