это невозможно, насколько мне известно.
строка:
List<ValuePair> list = new List<ValuePair>();
, которую вы написали в своем примере, не предоставляет конкретный тип для T, и это проблема , как только вы его передадите, вы можете добавить объект только этого типа.