title: Single array in the hdf5 file
body: <p>Image of my dataset:
  <img src="https://i.stack.imgur.com/mU9Fk.png" alt="Image of my dataset"></p>
  
  <p>I am using the  HDF5DotNet with C# and I can read only full data as the attached image in the dataset. The hdf5 file is too big, up to nearly 10GB, and if I load the whole array into the memory then it will be out of memory.</p>
  
  <p>I would like to read all data from rows 5 and 7 in the attached image. Is that anyway to read only these 2 rows data into memory in a time without having to load all data into memory first?</p>
  
  <pre class="lang-c# prettyprint-override"><code>    private static void OpenH5File()
      {
  
          var h5FileId = H5F.open(@"D:\Sandbox\Flood Modeller\Document\xmdf_results\FMA_T1_10ft_001.xmdf", H5F.OpenMode.ACC_RDONLY);
          string dataSetName = "/FMA_T1_10ft_001/Temporal/Depth/Values";
          var dataset = H5D.open(h5FileId, dataSetName);
          var space = H5D.getSpace(dataset);
          var dataType = H5D.getType(dataset);
  
          long[] offset = new long[2];
          long[] count = new long[2];
          long[] stride = new long[2];
          long[] block = new long[2];
  
          offset[0] = 1;     // start at row 5
          offset[1] = 2;     // start at column 0
  
          count[0] = 2;      // read 2 rows
          count[0] = 165701; // read all columns
  
          stride[0] = 0;     // don't skip anything
          stride[1] = 0;
  
          block[0] = 1;      // blocks are single elements
          block[1] = 1;
  
          // Dataspace associated with the dataset in the file
          // Select a hyperslab from the file dataspace
          H5S.selectHyperslab(space, H5S.SelectOperator.SET, offset, count, block);
          // Dimensions of the file dataspace
          var dims = H5S.getSimpleExtentDims(space);
  
          // We also need a memory dataspace which is the same size as the file dataspace
          var memspace = H5S.create_simple(2, dims);
  
          double[,] dataArray = new double[1, dims[1]]; // just get one array
          var wrapArray = new H5Array&lt;double&gt;(dataArray);
  
          // Now we can read the hyperslab
          H5D.read(dataset, dataType, memspace, space,
                   new H5PropertyListId(H5P.Template.DEFAULT), wrapArray);
  
      }
  </code></pre>