CSharp examples for System.Collections:IDictionary
IDictionary Equals
/*/*from w w w . j a va2 s .co m*/ * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * */ using System.Linq; using System.Collections.Generic; using System.Collections; using System; public class Main{ public static bool DictEquals<TKey>(IDictionary<TKey, object> first, IDictionary<TKey, object> second) { if (first == second) return true; if ((first == null) || (second == null)) return false; if (first.Count != second.Count) return false; var comparer = EqualityComparer<object>.Default; foreach (var kvp in first) { object secondValue; if (!second.TryGetValue(kvp.Key, out secondValue)) return false; if (!comparer.Equals(kvp.Value, secondValue)) return false; } return true; } /// <summary> /// Compares the entire members of one array which the other one. /// </summary> /// <param name="array1">The array to be compared.</param> /// <param name="array2">The array to be compared with.</param> /// <returns>Returns true if the two specified arrays of Objects are equal /// to one another. The two arrays are considered equal if both arrays /// contain the same number of elements, and all corresponding pairs of /// elements in the two arrays are equal. Two objects e1 and e2 are /// considered equal if (e1==null ? e2==null : e1.equals(e2)). In other /// words, the two arrays are equal if they contain the same elements in /// the same order. Also, two array references are considered equal if /// both are null.</returns> public static bool Equals(System.Array array1, System.Array array2) { bool result = false; if ((array1 == null) && (array2 == null)) result = true; else if ((array1 != null) && (array2 != null)) { if (array1.Length == array2.Length) { int length = array1.Length; result = true; for (int index = 0; index < length; index++) { System.Object o1 = array1.GetValue(index); System.Object o2 = array2.GetValue(index); if (o1 == null && o2 == null) continue; // they match else if (o1 == null || !o1.Equals(o2)) { result = false; break; } } } } return result; } }