public Dictionary <int, double> this[int index] {
     get {
         var matrix = new Dictionary <int, double>();
         // まずは変数に読み込む
         var length = GLPK.glp_get_mat_row(mip.problem, index + 1, null, null);
         var key    = GLPK.new_intArray(length + 1);
         var value  = GLPK.new_doubleArray(length + 1);
         GLPK.glp_get_mat_row(mip.problem, index + 1, key, value);
         // 次にDictionaryにコピーする
         for (int i = 1; i <= length; ++i)
         {
             matrix.Add(
                 GLPK.intArray_getitem(key, i) - 1,
                 GLPK.doubleArray_getitem(value, i)
                 );
         }
         // 最後に後片付けする
         GLPK.delete_intArray(key);
         GLPK.delete_doubleArray(value);
         return(matrix);
     }
 }