Simplest Solution

A possible solution is as follows:

using System;
 
class TempStats
{
  public string Description { get; set; }
  private double[] temp;
  public double[] Temp
  {
    set
    {
      bool sortedSoFar = true;
      int index = 0;
 
      while (index + 1 < value.Length && sortedSoFar)
      {
        if (value[index] > value[index + 1])
          sortedSoFar = false;
        index++;
      }
      if (!sortedSoFar)
      {
        throw new ArgumentException(
          "Your data is not sorted."
        );
      }
      foreach (double i in value)
      {
        if (i < -128.6)
        {
          throw new ArgumentOutOfRangeException(
            "That is colder than the coldest ever recorded on Earth!"
          );
          // https://en.wikipedia.org/wiki/Lowest_temperature_recorded_on_Earth
        }
        else if (i > 134.1)
        {
          throw new ArgumentOutOfRangeException(
            "That is hotter than the hottest ever recorded on Earth!"
          );
          // https://en.wikipedia.org/wiki/Highest_temperature_recorded_on_Earth
        }
      }
      temp = value;
    }
  }
 
  public TempStats(double[] tempP, string desc)
  {
    Temp = tempP;
    Description = desc;
  }
 
  public double Average
  {
    get
    {
      double acc = 0;
      foreach (double i in temp)
      {
        acc += i;
      }
      return acc / temp.Length;
    }
  }
 
  public double Median
  {
    get
    {
      if (temp.Length % 2 != 0)
      {
        return temp[(temp.Length - 1) / 2];
      }
      else
      {
        return (
            temp[(temp.Length - 1) / 2]
            + temp[temp.Length / 2]
          ) / 2;
      }
    }
  }
}

You can download it here