using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
float asFloat = 1.0f;
object asObject = asFloat;
IList list = CreateList(asObject);
// list is actually List<float>. AMAZING!
}
static IList CreateList(object unknownTypeObject)
{
Type t = typeof(List<>).MakeGenericType(unknownTypeObject.GetType());
object obj = Activator.CreateInstance(t);
return obj as IList;
}
}
}