There is no boxing.
“No, there will be no boxing. That was one of the main design goals of Generics.”
http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/359cf58a-f53d-478e-bc31-1507e77c9454/
“If a value type is used for type T, the compiler generates an implementation of the
List<T>class specifically for that value type. That means a list element of aList<T>object does not have to be boxed before the element can be used, and after about 500 list elements are created the memory saved not boxing list elements is greater than the memory used to generate the class implementation.”
http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx