C#において、値型(int, double...)を利用したリストを処理するメソッドを作るために、IConvertibleインタフェイス(doubleに変換して計算する)を利用したのですが、以下のようなエラーを出力してしまいます。

'System.Collections.Generic.List<int>' から 'System.Collections.Generic.List<System.IConvertible>' に変換できません

コードの例は以下の通りです。

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
                List<int> iList = new List<int>();
                iList.Add(100);
                iList.Add(200);
                iList.Add(300);
                iList.Add(400);
                iList.Add(500);

            //平均を求める
            double aver = average(iList);

            Console.Out.WriteLine("リストの中身を表示します:");
            for(int i = 0; i < iList.Count; i++)
            {
                Console.Out.WriteLine("iList[" + i + "] = " + iList[i]);
            }
            Console.Out.WriteLine("以上の平均は" + aver + "です");

            //出力表示
            Console.ReadKey();

        }

        /// <summary>
        /// 指定された数値のリストの平均値を求めるメソッドです。
        /// </summary>
        /// <param name="list">数値型のリスト</param>
        /// <returns>平均値(倍精度浮動小数)</returns>
        private static double average(List<IConvertible> list)
        {
            double rtn = 0;
            foreach (IConvertible ic in list)
            {
                rtn += ic.ToDouble(CultureInfo.CurrentCulture.NumberFormat);
            }
            rtn /= list.Count;
            return rtn;
        }
    }
}

iListの型をList<IConvertible>に変更したところコードは問題なく動きましたが、釈然としません。int型はIConvertibleインタフェイスを実装しているのに何故このようなエラーが出てしまうのでしょうか? どなたかご教示お願いいたします。

初めての質問なので拙い点等ございましょうが、よろしくお願い申し上げます。