示例#1
0
        public bool Equals(ChessBoard other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            var bothTwoDimensional = _chessPieces.Rank == other._chessPieces.Rank;
            var equalDimensions    = Enumerable.Range(0, _chessPieces.Rank).All(dimension =>
                                                                                _chessPieces.GetLength(dimension) == other._chessPieces.GetLength(dimension));

            return(bothTwoDimensional && equalDimensions &&
                   _chessPieces.Cast <ChessPiece>().SequenceEqual(other._chessPieces.Cast <ChessPiece>()));
        }