Hey Noupoi and welcome to gamedev.stackexchange!
Starting with your first question:
As your game board will be a nice rectangular thingy you can use an array.
To represend the game board you may want to create your own data structure which contains the folowing informations:
- The number of the field
- Information about the walls
As an alternative you can use an int array for the numbers and another array for the walls and binary code the walls.
As for XNA it will help you with some higher MAth (which I assume you dont need) and with the rendering part. It is basicly a framework which helps you at working with directX, so if you want to extend your game in this direction (maybe use 2D graphics instead of plain numbers) it may get very handy.
For me the structure used by XNA also feels very confortable so I use it even in some non directly gaming related project. But this is of course a personal opinion.
I hope this helps a bit!