public BiasedList(BiasedList other)
            {
                if (other == null)
                {
                    throw new ArgumentNullException(nameof(other));
                }

                _values = (int[])other._values.Clone();
            }
        public void IEquatableTakesPrecedenceOverIEnumerable()
        {
            var ints  = new BiasedList(1, 2, 3);
            var odds  = new BiasedList(1, 3, 5);
            var evens = new BiasedList(2, 4, 6);

            var comparer = new ModelComparer <BiasedList>();

            Assert.True(comparer.Equals(ints, ints));
            Assert.True(comparer.Equals(ints, new BiasedList(ints)));

            // ints and odds should compare as equal because BiasedList only looks at the first element.
            Assert.True(comparer.Equals(odds, ints));
            Assert.True(comparer.Equals(new BiasedList(odds), ints));

            Assert.False(comparer.Equals(ints, evens));
            Assert.False(comparer.Equals(ints, new BiasedList(evens)));
        }
 public bool Equals(BiasedList other) => other != null && this.First() == other.First();