My brain isn’t working, I’m trying to grab the first three rows on this grid. I’m making a simple checkers game just to learn some new stuff. My code is grabbing the first three columns to initialize the placement of the red chess pieces. I want the first three rows instead.
This is what my code is doing now:

This is my (simplified) code. Square is a class of mine that just holds a few little items to keep track of pieces.
private Square[][] m_board = new Square[8][];
for (int i = 0; i < m_board.Length; i++)
m_board[i] = new Square[8];
//find which pieces should hold red pieces, the problem line
IEnumerable<Square> seqRedSquares =
m_board.Take(3).SelectMany(x => x).Where(x => x != null);
//second attempt with the same result
//IEnumerable<Square> seqRedSquares =
m_board[0].Union(m_board[1]).Union(m_board[2]).Where(x => x != null);
//display the pieces, all works fine
foreach (Square redSquare in seqRedSquares)
{
Piece piece = new Piece(redSquare.Location, Piece.Color.Red);
m_listPieces.Add(piece);
redSquare.Update(piece);
}
If you are using
m_board.Take(3)to get the first three columns, then this should give you the first three rows:If you want to get the rows (or columns) as enumerables then do this: