using System.Collections.Generic;
public class SomeStrangeCollectionType<T>
private List<T> _myList = new List<T>();
public void Gibberish(T value)
return _myList.ToArray();
public static T Convert<T, TArray>(IEnumerable<TArray> src, Action<T, TArray> addMethod) where T : new()
var myType = (T)Activator.CreateInstance(typeof(T));
foreach (var element in src)
addMethod(myType, element);
public static void Main()
var stack = Convert<Stack<int>, int>(src, (lst, i) => lst.Push(i) );
var strange = Convert<SomeStrangeCollectionType<int>, int>(src, (c, i) => c.Gibberish(i));
Console.WriteLine(string.Join(",", stack.ToArray()));
Console.WriteLine(string.Join(",", strange.ToArray()));