T : <>, new(), ICollection<> { var ta = new T<A>(); foreach(var x in xs) ta.Add(x); return ta; } /// 別の部分 var data = Enumerable.Range(0, 20); var set = data.To<HashSet<>, int>(); var link = data.To<LinkedList<>, int>(); var list = data.To<List<>, int>(); 10までお預け ナンデ? ※言語仕様は変化します