コード例 #1
0
        public void GetOrCreate()
        {
            var x = Enumerable.Repeat(1, 1);

            Assert.IsTrue(EnumerableEqualByComparer.TryGetOrCreate(x, x, out EqualByComparer comparer));
            Assert.IsInstanceOf <EnumerableEqualByComparer <int> >(comparer);
        }
コード例 #2
0
ファイル: EqualBy.Enumerable.cs プロジェクト: forki/Gu.State
        private static bool EnumerableEquals(
            object x,
            object y,
            MemberSettings settings,
            ReferencePairCollection referencePairs)
        {
            if (ListEqualByComparer.TryGetOrCreate(x, y, out var comparer) ||
                ReadOnlyListEqualByComparer.TryGetOrCreate(x, y, out comparer) ||
                SetEqualByComparer.TryGetOrCreate(x, y, out comparer) ||
                ArrayEqualByComparer.TryGetOrCreate(x, y, out comparer) ||
                DictionaryEqualByComparer.TryGetOrCreate(x, y, out comparer) ||
                ReadOnlyDictionaryEqualByComparer.TryGetOrCreate(x, y, out comparer) ||
                EnumerableEqualByComparer.TryGetOrCreate(x, y, out comparer))
            {
                return(comparer.Equals(x, y, settings, referencePairs));
            }

            throw Throw.ShouldNeverGetHereException($"Could not compare enumerables of type {x.GetType().PrettyName()}");
        }