title: Select unknown item from multi-dimensional array using LINQ
body: <p>For my own personal amusement, I'm writing what I hope will be the foundation of a game to come later.  At current, I'm working on the game "board".  Please consider the following:</p>
  
  <pre><code>class Board
  {
      private Cube[,,] gameBoard;
      public Cube[, ,] GameBoard { get; }
      private Random rnd;
      private Person person;
      public Person _Person { get; }
  
      //default constructor
      public Board()
      {
          person = new Person(this);
          rnd = new Random();
          gameBoard = new Cube[10, 10, 10];
          gameBoard.Initialize();
          int xAxis = rnd.Next(11);
          int yAxis = rnd.Next(11);
          int zAxis = rnd.Next(11);
  
          gameBoard[xAxis, yAxis, zAxis].AddContents(person);
      }
  }
  </code></pre>
  
  <p>And this:</p>
  
  <pre><code>class Person : IObject
  {
      public Board GameBoard {get; set;}
      public int Size { get; set; }
      public void Move()
      {
          throw new NotImplementedException();
      }
  
      public void Move(Cube startLocation, Cube endLocation)
      {
          startLocation.RemoveContents(this);
          endLocation.AddContents(this);
      }
  
      public Person(Board gameBoard)
      {
          Size = 1;
          GameBoard = gameBoard;
      }
  
      public int[] GetLocation()
      {
          int[] currentLocation;
          var location =
              from cubes in GameBoard.GameBoard
              where cubes.GetContents.Contains(this)
              select cubes;
      }
  }
  </code></pre>
  
  <p>I know this is so wrong it's probably not even funny, but this is the roughest of rough cuts.</p>
  
  <p>I'm trying to get <code>GetLocation</code> to return the specific index of the <code>Cube</code> in which the <code>Person</code> is located.  So that if the person is in <code>Board.GameBoard[1, 2, 10]</code> I'll be able to retrieve that location (probably as an <code>int[]</code> as listed above).  However, at current, I'm unable to compile due to the following error: </p>
  
  <pre><code>Could not find an implementation of the query pattern for source type 'Cubes.Cube[*,*,*]'. 'Where' not found.'
  </code></pre>
  
  <p>I was pretty sure that LINQ should be able to query multi-dimensional arrays, but I haven't found any documentation on how to do it.</p>
  
  <p>Any suggestions, or am I on the completly wrong track here?</p>