If so, pack all the tiles into one large texture, and then generate vertices for each square. Then move the camera up/down/left/right/in/out to do the operations you need. Use an Ortho mode for the camera to make it look and draw 2D.
You will want to generate vertices with position and texture coordinate. The texture coordinate should be the coordinate of your tile within the texture, divided by texture height/width (i e, so the right edge is 1.0). The X and Y coordinates can be just the tile coordinate, and the tile coordinate+1. Generate six vertices around each tile, so that you get two triangles, then draw using DrawPrimitives() -- you don't need an index buffer.
If your array of bytes is an actual image, then you lock a texture, poke the data into there, unlock the texture, and draw a single square (two triangles) with the texture on it. It's probably best to put the texture in MANAGED pool.